大一 C++

C++第一周

2017-07-11  本文已影响0人  SYSinsight

date: 2017-03-13 21:00:05

class相关易错点


class Person { 
        public: 
            static int getNumberOfObjects(); 
        private: 
            static int numberOfObjects; 
};
int Person::numberOfObjects=0;
2. 有且只有const int型的static变量能在类中初始化。如:
class Person
{
private:
    static const int age=20;
    static string address;
    //这一个就不能在类中初始化,他不是static const int
public:
};
3. 静态数据成员的特点
    * 对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共用。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新。
    * 因为静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它。
    * 静态数据成员主要用在各个对象都有相同的某项属性的时候。
    * 同全局变量相比,使用静态数据成员有两个优势:
        1.静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其它全局名字冲突的可能性。
        2.可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能。

getline的作用与使用

string str;
getline(cin,str);

即可

几个之前没见过的编译错误

上一篇 下一篇

猜你喜欢

热点阅读