C++常见的问题?
补充:不错!
补充:不错!
答案:1.一个类可以有好多个构造函数。不同的构造函数的参数类型和数量不完全相同。
2.一个类只能有一个析构函数,析构函数不能有返回值,而且不能有参数。
3.一个类里面系统自带的函数有:构造函数 析构函数 拷贝构造函数,其中要注意的是拷贝构造函数的内部实现原理的细节(拷贝构造函数的形参为什么要用引用,为什么要加const常)
构造函数和析构函数的区别以及相同点,三个都是系统默认自带的,当然我们可以全部重载他们
c++代码编写规范:
类用C开头
成员变量用m_开头
接口函数写在前面,普通变量写在后面
传递一个实参数组到形参数的时候,形参一般采用数组的指针传递。(声内存,比较的方便)
java和c++里面的函数的形参和实参的不同
在java中形参和实参是一一对应的,这里的一一对应不仅是参数的个数而且是类型,好像这样的实参和形参不容易区别开来。其实c++中的形参和实参是最标准的。
在c++中,形参和实参可以不同,也就是说可以这样(形参=实参)这样就可以利用形参中的某些变量,尤其是指针变量,如此一来,形参和实参便具有了真正的意义。
普通上来理解是,形参就是形式上的参数,不是真正的参数,只是个形式,实参才是真正的参数,形参中的某些参数才是真正的参数。这样一来就可以有很丰富的含义。
普通的继承都是将父类的一个副本拷贝给子类,但是如果子类多了,副本多了会占用资源,虚基类可以解决这样的问题。在日常的开发中最好每个继承都要写成虚基类。也就是加上virtual 避免产生多个副本。
静态联编-在编译之前就能确定所调用的资源,动态联编(运行时联编)(类似于java里面的多态)
纯虚函数类似于java中的抽象类和抽象的方法(java中的接口比抽象类更抽象)(c++中的虚函数和java中的虚函数不一样,c++中是为了让指针可以有多态性,而java中确实真实的抽象,不能有实现的方法,为接口准备的)
关于java中的易混点:
在抽象类中可以有具体的方法的实现,但是这个实现的方法不能是抽象的方法,当然抽象方法不能有具体的实现,有抽象的方法的类一定是抽象类,反之不成立。
接口是抽象方法的抽象,他里面没有具体的实现,非抽象的方法也不能有,接口中用的比较多的还是非抽象方法的申明。
而在c++中,纯虚方法就类似于java的虚函数,主要用于多态。而c++中的虚函数却可以有方法的实现,他和c++中的虚函数有比较大的区别,他是用来使指针变量和引用类型可以实现多态性,也就是也就是没有实现的虚函数。
上一个:c++和C#有什么区别
下一个:C++简单编程实验