错题整理(2)

1.在C++中,如果确定了某一个构造函数的创建过程,在该构造函数中如果调用了其它重载的构造函数,它将不会执行其它构造函数的初始化列表部分代码,而是执行函数体代码,此时已经退化成普通函数了。例子说明如下:

class CBook{

public:

    doublem_price;

   CBook() {

       CBook(8.8);

    }

   CBook(double price) : m_price(price) { }

};

int main(){

   CBook c;

    cout<< c.m_price << endl;  // 此时并不会输出理想中的8.8

}

2.静态数据成员只能在全局区域进行初始化,而不能在类体中进行(构造函数中初始化也不行),且静态数据成员不涉及对象,因此不受类访问限定符的限制。 
例子说明如下:

class CBook{

public:

    staticdouble m_price;

};

doubleCBook::m_price = 8.8;  // 只能在这初始化,不能在CBook的构造函数或直接初始化

3.类的静态成员函数可以调用静态数据成员,但是不能调用非静态数据成员和非静态成员函数

    静态数据成员必须单独初始化

    静态数据成员只有一份,且不依赖对象而存在

    静态成员函数不能加const

4.友元函数访问对象中的成员需要通过对象名,因为友元函数里不含this指针。

5.类方法是指类中被static修饰的方法,无this指针

    类方法是可以调用其它类的static方法的

    可以在类方法中生成实例对象再调用实例方法

    成员方法又称为实例方法

猜你喜欢

转载自blog.csdn.net/ys5858588/article/details/81197180
今日推荐