类是C++最重要的特征。简单来说,类就是定义了一个全新的类型和一个新的作用域。
1, 类成员。每个类可以有多个一个成员,也可以没成员,成员可以使数据、函数或类型别名。一个类可以包含若干公有、私有的和受保护的部分,公有类型的成员可以被使用该类型的所有代码访问;在私有部分的成员只可以被该类内的其他类成员访问。
2, 构造函数。创建一个类的对象时,编译器会自动使用一个构造函数来初始化该对象。构造函数是一个特殊的、与类同名的成员函数,用于给每个数据成员设置适当的初始值。
3, 成员函数。在类内部,声明成员函数是必需的,但是定义成员函数是可选的。在类内部定义的成员函数为inline。在类外部定义的成员函数必须指明它们是在类作用域中。假设有类A,在A外部定义的成员函数叫Afun,A的一个对象是a,则在Afun内部对A类成员的引用就是对a成员的引用。
Const成员不能改变其所操作对象的成员函数。Const必须同时出现在声明和定义中。
template<class T>
class AVLTreeNode{
public:
T key;
int height;
AVLTreeNode *left;
AVLTreeNode *right;
AVLTreeNode(T value, AVLTreeNode *l, AVLTreeNode *r) :key(value), height(0), left(l), right(r){}
};
class Sales{
public:
int data;
char ch;
string gstr;
void appleCast(){ gstr.push_back('C'); }
int appleAdd(int x){ return data + x; }
int appleKey(int b){ key=b; return key; }
bool appleUI() const;
private:
string str;
int key;
float oa;
};
bool Sales::appleUI() const{
if (data > 10)return true;
else return false;
}
int main(){
int a = 94, b = 102;
Sales sa;
sa.data = a;
sa.gstr = "12345";
sa.appleCast();
sa.appleUI();
cout << sa.gstr << " " << sa.appleAdd(6) << sa.appleKey(64)<<endl;
return 0;
}