类与对象的几种问题

                                类与对象的几种问题

1.函数指针和函数名调用函数有什么区别? 
函数指针可以在不确定函数时候放一个函数指针,调用时用到谁指向谁,还有就是inline函数指针是不会处理内敛函数的。
2.c里面struct是不能定义空结构体 而且默认为public,c++中struct和class代表类 空的化占一个字节
3.他们使用_thiscall调用约定,再类外实现函数就成了c调用约定,加上类作用域才能完成。类内是inline函数,在类外不是inline函数。
4.析构函数的编程要写if(name!=NULL){delete }这是为了防止多次析构我们自己无论调用了多少次析构,编译器都会为我们再调用一次。
5.拷贝构造 传const &  如果不这样传值就会造成递归构造。拷贝构造函数对于成员变量有指针的问题一定要记得深拷贝。还有就是我们拷贝构造const除了为了保护变量不被修改意外,还有就是隐式生成对象都是const类型要用常引用引用。否则会报错。
6.赋值运算符重载  自赋值要考虑if(this==src)return;
7.注意逗号表达式。(1,2,3,4)==4
8.引用变量可以提升临时变量的生存周期,CGood &p=CGood(1,ma,5.5);本来结束这个语句就析构了现在他的生存中期跟着引用走。
9.explicit禁止隐式对象生成。
10.static构造函数在main中按顺序来的,只不过生存周期长一些。
11.new开辟对象调用构造函数malloc只是开辟空间。(4种new)delete 调用析构在释放空间。
12.friend class CLink  友元类
13.静态成员 常成员 静态方法 常方法
有static的成员的类建立的对象大小不算static因为在.data上。而且一定要在类外加作用域定义。 void show()const 常方法要常对象调用const加在this最前面 普通对象都可以调用,常对象只能调用常芳法。绝对类型匹配优先调这个方法(加入有常方法普通方法重载)。

猜你喜欢

转载自blog.csdn.net/qq_41784469/article/details/80752006