C++是一种面向对象的编程语言,其中最重要的概念就是类和对象。类定义了一个对象的特征和行为,而对象则是类的一个实例。
类的定义
在C++中,定义一个类需要使用class
关键字,接着是类的名称和一对花括号,其中花括号内的代码称为类体,它包含了类的成员变量和成员函数。
class MyClass
{
public:
// 公有成员函数
void DoSomething();
private:
// 私有成员变量
int myPrivateVar;
};
在这个例子中,MyClass
是类的名称,DoSomething
是类的公有成员函数,myPrivateVar
是类的私有成员变量。
对象的定义
在定义一个类之后,需要使用该类来定义一个对象。在C++中,使用new
关键字来动态地分配内存来创建一个随意的对象,在使用完成后需要使用delete
关键字来释放动态分配的内存。
MyClass* myObject = new MyClass();
myObject->DoSomething();
delete myObject;
在这个例子中,我们创建了一个名为myObject
的指针,它指向一个新的MyClass
实例。然后,我们调用了该对象的公有成员函数DoSomething()
。最后,我们使用delete
关键字释放了分配的内存。
示例 1:创建一个简单的类和对象
下面是一个更具体的例子,其中我们定义了一个简单的类(Person
),并使用该类来创建一个对象(John
)。
#include <iostream>
#include <string>
// 定义一个类,它表示一个人的信息
class Person
{
public:
void SetName(const std::string& name)
{
m_name = name;
}
void SetAge(int age)
{
m_age = age;
}
void Introduce()
{
std::cout << "Hello! My name is " << m_name << " and I'm " << m_age << " years old." << std::endl;
}
private:
std::string m_name;
int m_age;
};
int main()
{
// 创建一个人物对象
Person John;
// 设置人物对象的成员变量
John.SetName("John");
John.SetAge(30);
// 调用人物对象的成员函数
John.Introduce();
return 0;
}
在这个示例中,我们定义了一个Person
类和其类体,该类表示一个人的信息。SetName
和SetAge
是类的成员函数,用于设置成员变量m_name
和m_age
,而Introduce
是类的成员函数,用于在控制台上输出一个人的信息。在main
函数中,我们创建了一个John
对象,然后通过该对象的成员函数来设置其成员变量和调用其成员函数。
示例 2:使用类的继承
另一个重要的概念是类的继承,它允许一个类从另一个类中继承成员变量和成员函数。在C++中,可以通过使用:
和类的名称来实现类的继承。
#include <iostream>
#include <string>
// 定义一个基类
class Person
{
public:
void SetName(const std::string& name)
{
m_name = name;
}
void SetAge(int age)
{
m_age = age;
}
void Introduce()
{
std::cout << "Hello! My name is " << m_name << " and I'm " << m_age << " years old." << std::endl;
}
protected:
std::string m_name;
int m_age;
};
// 定义一个派生类
class Student : public Person
{
public:
void SetStudentID(int studentID)
{
m_studentID = studentID;
}
void Study()
{
std::cout << "I'm studying with student ID " << m_studentID << "." << std::endl;
}
private:
int m_studentID;
};
int main()
{
// 创建一个学生对象
Student John;
// 设置学生对象的父类成员变量和派生类成员变量
John.SetName("John");
John.SetAge(20);
John.SetStudentID(10001);
// 调用学生对象的父类成员函数和派生类成员函数
John.Introduce();
John.Study();
return 0;
}
在这个示例中,我们定义了一个Person
类和Student
类。Student
类使用:
关键字继承自Person
类。父类Person
有SetName
、SetAge
和Introduce
成员函数和它们对应的成员变量。在Person
中,m_name
和m_age
定义为protected
,这意味着派生类也可以使用它们。派生类Student
还有自己的成员变量m_studentID
和两个成员函数SetStudentID
和Study
,它们与父类成员变量和成员函数一起,都可以通过派生类的对象来调用。在main
函数中,我们创建一个John
对象,然后通过该对象的成员函数来设置其成员变量和调用其成员函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++类与对象的详细说明 - Python技术站