一、类的定义方法:
注意:1.类定义最后的分号不能省略。2.类中的数据成员不能在类中进行初始化,需要在构造函数中初始化。3.类名最好能体现其功能,首字母建议大写。
二、类的实现方法:
(1)在类定义时同时实现(若成员函数中在类中定义,则被计算机自动视为内联函数):如
class A{
public:
A(int a){x = a;};
A()
~A(){};
void show(){ cout << "x=" << x << endl;};
private:
int x;
};
(2)在类的外部实现:
class A{
public:
A(int a){x = a;};
A()
~A(){};
void show();
private:
int x;
};
void A::show(){ cout << "x=" << x << endl;}
注意:此时外部所定义函数时,使用::,称之为作用域操作符,可以调用左边类所属作用域的内容,而且在外部定义时,跟一般函数定义形式一样,不需要像类的定义一样末尾加上分号。
三、类的实例化与访问方法:
(1)通过栈内存进行类的实例化对象:
class A{
public:
A(int a){x = a;};
A()
~A(){};
void show(){ cout << "x=" << x << endl;};
private:
int x;
};
int main(){
A a(6);
a.show();
return 0;
}
1.通过栈内存进行类的实例化对象,可以看作将类作为数据结构定义一个对象。
2.通过栈内存实例化对象后,访问该类成员函数或成员,利用对象名加上.号访问。
3.对于对象中的变量,数据,我们一般进行封装,通过调用成员函数来使用它们。
(2)通过堆内存进行类的实例化:
class A{
public:
A(int a){x = a;};
A()
~A(){};
void show(){ cout << "x=" << x << endl;};
private:
int x;
};
int main(){
A *a = new A(6);
a->show();
(*a).show();
delete a;
return 0;
}
通过堆内存实例化对象后,访问使用类指针->,或(*对象名).两种方式进行对成员函数或成员数据的访问。