📅  最后修改于: 2023-12-03 14:39:54.169000             🧑  作者: Mango
在C++中,类是一种用户自定义的数据类型。它允许程序员定义一组数据成员和成员函数,这些函数可以在对象上调用,以实现特定的行为。类的主要目的是将数据与操作数据的代码组合在一起,以便更好地封装和重用代码。
类的定义以关键字class开头,后面跟着类名和一对花括号。类名通常使用大写字母开头。在花括号中,可以定义成员变量和成员函数。
class MyClass{
public:
//成员变量
int x;
int y;
//成员函数
void print();
};
在上面的示例中,我们定义了一个名为MyClass的类,它具有两个整数成员变量x和y,以及一个成员函数print。
类的成员函数可以在类定义内部或类定义外部实现。在内部实现的成员函数通常被称为“内联函数”。
class MyClass{
public:
//成员变量
int x;
int y;
//成员函数
void print(){
cout << "x = " << x << endl;
cout << "y = " << y << endl;
}
};
//在类定义外部实现成员函数
void MyClass::print(){
cout << "x = " << x << endl;
cout << "y = " << y << endl;
}
类的对象可以像其他数据类型一样进行声明和初始化。可以使用类名来声明类的对象,并使用构造函数将其初始化。
MyClass obj1; //默认构造函数
MyClass obj2(1,2); //自定义构造函数
可以使用成员选择运算符.
来访问类的成员变量和成员函数。
obj1.x = 10;
obj1.y = 20;
obj1.print();
/*
输出结果:
x = 10
y = 20
*/
类成员函数只能访问其所属类的成员变量和成员函数。如果想访问其他类的私有变量和函数,可以使用友元函数。
友元函数是一种非成员函数,它可以访问类的私有成员。要创建友元函数,请将其声明为类的友元函数。
class MyClass{
private:
int x;
public:
MyClass(int val) : x(val) {}
friend void printX(MyClass obj);
};
void printX(MyClass obj){
cout << "x = " << obj.x << endl;
}
在上面的示例中,我们定义了一个名为printX的函数,其参数为MyClass的对象。我们将其声明为MyClass的友元函数,并在函数体内访问了其私有成员变量x。
可以使用这种方式来访问其他类的私有成员,但要注意控制访问权限,避免数据泄露和不必要的错误。