类和对象
基本定义
- 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量
- 创建对象的过程也叫类的实例化,每个对象都是类的一个具体实例
- 与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。
class Student{
public:
char *name;
int age;
float score;
void say(){
cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
}
};
- class是 C++ 中新增的关键字,专门用来定义类。
- Student是类的名称;类名的首字母一般大写,以和其他的标识符区分开。
- public也是 C++ 的新增关键字,它只能用在类的定义中,表示类的成员变量或成员函数具有“公开”的访问权限
- { }内部是类所包含的成员变量和成员函数,它们统称为类的成员
类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候才可以赋值。
创建对象
class Struct stu1;
访问类的成员
可以使用点号 . 来访问成员变量和成员函数
#include <iostream>
using namespace std;
class Student{
public:
char *name;
int age;
float score;
void say(){
cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
}
};
int main(){
Student stu;
stu.name = "小明";
stu.age = 15;
stu.score = 92.5f;
stu.say();
return 0;
}
使用对象指针
1.在栈上分配内存,需要使用&获取它的地址
Student stu;
Student *pStu = &stu;
2.在堆上分配空间,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数,这个指针就称为对象指针。有了对象指针后,可以通过箭头 - > 来访问对象的成员变量和成员函数
Student *pStu = new Student;
pStu -> name = "小明";
pStu -> age = 15;
pStu -> score = 92.5f;
pStu -> say();
域解析符 ::(作用域运算符或作用域限定符)
用途:用来连接类名和函数名,指明当前函数属于哪个类;当成员函数定义在类外时,就必须在函数名前面加上类名予以限定
class Student{
public:
char *name;
int age;
float score;
void say();
};
void Student::say(){
cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
}
成员访问限定符
public protected private
|