C++ 之类和对象
类的定义
类是C++中创建对象的蓝图,它封装了数据(成员变量)和行为(成员函数)。
class MyClass {
public:
// 公有成员
void publicMethod();
private:
// 私有成员
int privateVar;
protected:
// 保护成员
int protectedVar;
};
// 类成员的定义
void MyClass::publicMethod() {
// 方法实现
}
类的声明和定义
类可以被声明为一个接口,然后在另一个地方定义其成员函数。
// MyClass的声明
class MyClass;
// MyClass的定义
class MyClass {
// 成员变量和成员函数的实现
};
成员变量和成员函数
成员变量是类的一部分,用于存储数据,而成员函数是类的一部分,用于定义操作数据的行为。
class MyClass {
public:
int publicVar; // 公有成员变量
void publicMethod(); // 公有成员函数
private:
int privateVar; // 私有成员变量
void privateMethod(); // 私有成员函数
};
void MyClass::publicMethod() {
// 实现
}
void MyClass::privateMethod() {
// 实现
}
访问控制(public, private, protected)
public
: 类的成员可以被任何代码访问。private
: 类的成员只能被类的成员函数和友元函数访问。protected
: 类的成员可以被类的成员函数、友元函数以及子类访问。
对象
对象是类的实例,它是根据类定义创建的。
MyClass obj; // 创建MyClass的一个对象
对象的声明和初始化
对象可以在声明时被初始化。
MyClass obj(10); // 假设有一个接受int参数的构造函数
对象的构造和析构
构造函数用于初始化对象,析构函数用于在对象生命周期结束时进行清理。
class MyClass {
public:
MyClass(int value) : value_(value) {} // 构造函数
~MyClass() { // 析构函数
// 清理代码
}
private:
int value_;
};
MyClass obj(10); // 调用构造函数
// obj生命周期结束时,自动调用析构函数
构造函数和析构函数
构造函数是特殊的成员函数,用于创建对象时初始化成员变量。析构函数用于销毁对象。
对象的拷贝构造函数
拷贝构造函数用于创建一个对象作为另一个对象的副本。
class MyClass {
public:
MyClass(const MyClass& other) {
// 拷贝other对象的成员变量
}
};
MyClass obj1(10);
MyClass obj2 = obj1; // 调用拷贝构造函数
对象的赋值运算符重载
赋值运算符可以被重载,以定义对象赋值时的行为。
class MyClass {
public:
MyClass& operator=(const MyClass& other) {
// 赋值操作
return *this;
}
};
MyClass obj1(10);
MyClass obj2;
obj2 = obj1; // 调用赋值运算符
静态成员
静态成员属于类本身,而不是类的任何特定对象。
静态成员变量
静态成员变量在程序的整个运行期间只存在一个实例。
class MyClass {
public:
static int staticVar; // 静态成员变量
};
int MyClass::staticVar = 0; // 定义和初始化
静态成员函数
静态成员函数属于类,不依赖于类的对象。
class MyClass {
public:
static void staticMethod() {
// 方法实现
}
};
MyClass::staticMethod(); // 直接通过类名调用
静态成员通常用于那些不依赖于对象状态的操作和数据。它们可以通过类名直接访问,而不需要创建类的对象。