求
Class的具体用法
和
作用
虽然我也不会,但是给你找了一点,总结如下
C++中的类(Class)是面向对象编程(OOP)的一个重要概念,用于封装数据和功能。类允许开发者创建自定义数据类型,并通过该类定义的功能与数据进行交互。类通过封装、继承和多态等特性,使得程序更具可维护性和可扩展性。
1. 类的基本结构
一个简单的类定义通常包括以下几个部分:
- 类名
- 成员变量(属性)
- 成员函数(方法)
以下是一个简单的类的示例:
#include <iostream>
#include <string>
class Dog {
public:
// 成员变量
std::string name;
int age;
// 构造函数
Dog(std::string dogName, int dogAge) {
name = dogName;
age = dogAge;
}
// 成员函数
void bark() {
std::cout << name << " says Woof!" << std::endl;
}
};
int main() {
// 创建对象
Dog myDog("Buddy", 3);
myDog.bark(); // 调用成员函数
std::cout << "My dog's age is: " << myDog.age << std::endl; // 访问属性
return 0;
}
2. 类的主要组成部分
2.1 构造函数和析构函数
- 构造函数:用于初始化对象。构造函数与类同名,没有返回值。
- 析构函数:用于清理对象在被销毁时所占用的资源。析构函数的名称前加“
~
”。
class Sample {
public:
Sample() { // 构造函数
std::cout << "Object created." << std::endl;
}
~Sample() { // 析构函数
std::cout << "Object destroyed." << std::endl;
}
};
2.2 访问控制
C++中的类支持三种访问控制修饰符:
public
:公众的,表示成员可以被任何地方访问。protected
:保护的,表示成员只能被继承类和同一类访问。private
:私有的,表示成员只能在定义该类的内部访问。
class Example {
private:
int data; // 只能被Example类访问
public:
void setData(int d) {
data = d; // 通过公有函数访问私有成员
}
int getData() {
return data;
}
};
2.3 成员函数
类中的函数称为成员函数,可以访问类的成员变量。成员函数通常用于操作对象的状态。
class Rectangle {
public:
int width, height;
int area() {
return width * height; // 计算矩形面积
}
};
3. 继承
C++支持类的继承,可以在一个类中继承另一个类的属性和方法。通过继承,可以实现代码的重用。
class Animal {
public:
void eat() {
std::cout << "Eating..." << std::endl;
}
};
class Dog : public Animal { // Dog类继承Animal类
public:
void bark() {
std::cout << "Woof!" << std::endl;
}
};
int main() {
Dog myDog;
myDog.eat(); // 调用基类的方法
myDog.bark(); // 调用子类的方法
return 0;
}
4. 多态
C++支持多态性,允许以统一的接口来处理不同类的对象。使用基类指针或引用进行动态绑定,可以实现运行时多态。
class Base {
public:
virtual void show() { // 虚函数
std::cout << "Base class show function." << std::endl;
}
};
class Derived : public Base {
public:
void show() override { // 重写基类的虚函数
std::cout << "Derived class show function." << std::endl;
}
};
void display(Base* b) { // 使用基类指针
b->show(); // 动态调用
}
int main() {
Base base;
Derived derived;
display(&base); // 调用基类方法
display(&derived); // 调用派生类方法
return 0;
}
这码风一眼chat GPT
e
怎么说呢,我平常码风就这样,还有,chatGPT买不起(悲
我从未见过码风如此鬼畜之人
哈哈,我打代码喜欢打空格,最近不想写using namespace std。。。
我建议你说真话
真的,chat GPT买不起
但是能免费试用的(doge