类和对象的创建和使用
- 类的声明与定义
- 类的声明
- 类的定义
- 对象的创建和通过对象访问类的成员
- 对象
- 对象访问类的成员
类的声明与定义
在现实世界中,经常有属于同一类的对象。例如,你的自行车只是世界上很多自行车中的一辆。
类:在面向对象软件中,利用对象的相同特征为它们所建立的一个集合。
类的声明
类的声明主要包含两个部分:成员变量和成员函数。
声明一个类的格式如下:
class 类名
{
public: // 类的公有成员
int A; // 公有的成员变量
void PublicFunc(); // 公有的成员函数
private: // 类的私有成员
long B; // 私有的成员变量
void PrivateFunc(); // 私有的成员函数
public: // public,private 块可以多次交替出现
double C;
}; // 注意不要忘了最后的分号
访问性:
- public:公开访问性,代表这个成员能在类的定义以外的地方被使用
- private:私有访问性,代表这个成员只能在类的定义内被使用
例如:
class Test
{
public:
int a;
private:
int b;
};
int main()
{
Test t;
t.a = 10; // 访问公有成员变量,正确
t.b = 10; // 访问私有成员变量,错误
}
类的定义
类的定义,指的是根据声明具体实现类的功能,与一般的函数定义很相似。
例如:
class Test
{
public:
int a;
void PubFun();
private:
int b;
void PriFun();
}; // 声明一个带有两个成员函数的类
void Test::PubFun() // 定义公有的那个成员函数
{
a = 10;
b = 10; // b 是私有成员变量,只能在成员函数的定义中访问
}
void Test::PriFun() //定义私有的那个成员函数
{
a = 20;
b = 20; // b 是私有成员变量,只能在成员函数的定义中访问
}
- 定义普通函数与成员函数的不同点:
定义成员函数时在函数名前加了 类名:: 的前缀。
其中,作用域运算符 :: 指明了成员函数所属的类。
对象的创建和通过对象访问类的成员
对象
类只是一种形式化的定义,要使用类提供的功能,必须使用类的实例,即对象,一个类可以定义多个对象,而对象要占据一定的内存空间。
类和对象的关系就像整形和变量的关系。
每个对象都包含类中定义的各个数据成员的存储空间,共享类中定义的成员函数。
对象的创建格式:类型名 变量名
例如:
class Test
{
//此处省略 Test 类成员
};
int main()
{
int a; // 声明一个普通变量
Test t1; // 创建一个类的对象
}
对象访问类的成员
通过对象也可以访问一个类的成员,通过 . 成员运算符
格式:对象名.成员名
如果是数据成员,就可以对它进行赋值,如果是函数成员,就可以调用它。我们可以将其看做为一般变量,只是在变量名前面多了代表它所属对象的前缀。
- 如果是数据成员,就可以对它进行赋值
- 如果是函数成员,就可以调用它
我们可以将其看做为一般变量,只是在变量名前面多了代表它所属对象的前缀。
例如:
#include <iostream>
class Test
{
public: // 两个公有成员
int a;
void Hello();
};
void Test::Hello() // 定义 Test 类的公有函数
{
std::cout << "Hello " << a << std::endl;
}
int main()
{
Test t1;
t1.a = 10; // 给 t1 对象的数据成员 a 赋值
t1.Hello(); // 调用 t1 对象的成员函数 hello
}
//注意:访问成员时要注意成员的访问性