类和对象
类的定义
类是C++中实现面向对象编程的基础构造,它允许将数据和功能封装在一起。
class MyClass {
public:
int publicData; // 公有数据成员
// 公有成员函数
void publicFunction() {
std::cout << "Public function" << std::endl;
}
private:
int privateData; // 私有数据成员
// 私有成员函数
void privateFunction() {
std::cout << "Private function" << std::endl;
}
};
对象的创建和使用
对象是根据类创建的具体实例。使用类名后跟变量名来创建对象。
MyClass myObject; // 创建 MyClass 的一个对象
myObject.publicFunction(); // 调用公有成员函数
myObject.publicData = 10; // 访问公有数据成员
访问修饰符
访问修饰符控制成员(数据和函数)的可见性和可访问性。
public
公有成员可以在类的外部被访问。
公有成员函数可以访问类的任何成员。
private
私有成员只能在类的内部访问。
私有成员函数只能访问类的私有成员。
protected
受保护的成员在类内部和继承自该类的子类中可以访问。
受保护的成员函数可以访问类的受保护成员和其他受保护成员。
示例
class MyClass {
private:
int privateVar;
protected:
int protectedVar;
public:
MyClass() : privateVar(10), protectedVar(20) {
// 构造函数可以初始化所有成员
}
void setPrivateVar(int value) {
privateVar = value; // 公有成员函数可以访问私有成员
}
int getPrivateVar() const {
return privateVar; // 提供对私有成员的访问
}
};
class DerivedClass : public MyClass {
public:
void accessProtectedVar() {
protectedVar = 30; // 子类可以访问基类的受保护成员
}
};
构造函数和析构函数
构造函数:当对象被创建时自动调用的特殊成员函数,用于初始化对象。
析构函数:当对象生命周期结束时自动调用,用于清理资源。
MyClass() {
// 构造函数体
}
~MyClass() {
// 析构函数体
}
this 指针
this 指针是一个隐含的指针,指向对象本身。
它在类的非静态成员函数中可用。
void MyClass::setPrivateVar(int value) {
this->privateVar = value; // 使用 this 指针访问成员变量
}
类和对象是C++中面向对象编程的核心概念。