100个windows平台C++开发错误之十类

来源:互联网 发布:java apt 编辑:程序博客网 时间:2024/05/21 10:03

(46)class结束大括号后记得加分号


(47)class的成员变量访问标号默认是private不能被类外部访问。


(48)对于指针,操作数据成员用”->”操作符,对于类/结构/联合操作数据成员用”.”操作符。

class Base{

public:

    int count;

};

 

int main(){

    Base b;

    b->count =1;

 

    Base *bp;

    bp.count = 1;

 

    return 0 ; 

}

error C2819: “Base”类型没有重载成员“operator ->”

error C2228: “.count”的左边必须有类/结构/联合

(49)常量成员函数,声明和实现时都要带const


(50)初始化列表

任何 const 或引用类型成员以及没有默认构造函数的类类型的任何成员必须在构造函数初始化列表中进行初始化。每个成员在构造函数初始化列表中只能指定一次。否则会报错已经初始化。成员被初始化的次序就是定义成员的次序。

(51)默认构造函数

类通常应定义一个默认构造函数,否则不能作静态分配数组的元素类型,也不能用作动态分配数组的元素类型。静态分配数组必须为每个元素提供一个显式的初始化式。


(52)利用默认构造函数定义一个对象


ConstRef cr(); //定义一个函数而非对象

(53)explicit 关键字

explicit 关键字只能用于类内部的构造函数声明上。在类的定义体外部所做的定义上不再重复它。


(54)static数据成员的定义

static 数据成员必须在类定义体的外部定义(且正好一次)。不像普通数据成员,static 成员不是通过类构造函数进行初始化,而是应该在定义时进行初始化。

(55)类类型的数据成员

static数据成员可以是该成员所属的类类型,而非static成员限定声明为其自身类对象的指针或引用。


更多0
1

0 0
原创粉丝点击