标签:变量定义 div cpp bsp 调用 自测 one private 就是
class CTestA {
public:
CTestA(){
std::cout<<"CTestA(){"<<std::endl;
}
CTestA(const CTestA &){
std::cout<<"CTestA(const CTestA &){"<<std::endl;
}
};
class CTestB {
public:
const CTestA & GetObj()const{return obj_;}
private:
CTestA obj_;
};
void funcTest() {
CTestB obj; // CTestA(){
auto objtt = obj.GetObj(); // CTestA(const CTestA &){
// objtt 被推导的类型说明:obj.GetObj()返回的是引用对象,而auto推导的是“引用对象的类型”也就是 CTestA ,所以这是个变量定义,而不是引用别名绑定,所以会调用拷贝构造函数
const CTestA & objttt2 = obj.GetObj(); // 没有构造函数调用
const auto & objt2222 = obj.GetObj(); // 没有构造函数调用
CTestA objttt3 = obj.GetObj(); //CTestA(const CTestA &){
}
顺便说下底层const,比较好的记忆方法,可以记为 const修饰的是指针指向的那个对象的性质
标签:变量定义 div cpp bsp 调用 自测 one private 就是
原文地址:https://www.cnblogs.com/xiarl/p/14512822.html