12.1 【出题思路】 理解智能指针的基本特点。 【解答】 StrBlob b1; { StrBlob b2 = {"a", "an", "the"}; b1 = b2; b2.push_back("about"); } 由于 StrBlob 的 data 成员是一个指向 string 的 vector 的 shared_ptr,因此 StrBlob 的赋值不会拷贝 vector 的内容,而是多
14.1 【出题思路】 理解重载运算符与内置运算符的区别。 【解答】 不同点: 重载操作符必须具有至少有一个 class 或枚举类型的操作数; 重载操作符不保证操作数的求值顺序。例如,对 && 和 || 的重载版本不再具有 “短路求值” 的特性,两个操作数都要进行求值,而且不规定操作数的求值顺
Initialization 1.A default initialized smart pointer holds a null pointer. shared_ptr<vector<string>> p; // shared_ptr that can point at a vector of string. 2.Using make_shared function allocates and initializes an object in dynamic memeory