我们要学习面向对象啦
那么,什么是对象呢?比如,学校里有一个个学生,这每一个个体都可以看作对象;而这些个体都是学生,可以抽象为学生类。作为学生,你我都存在一些特征。比如都有学号,都有所在的院系,有姓名、性别、年龄等等,这些属性称为成员变量。而且都会干一些事情,比如上课、干饭、打游戏,这些行为称为成员函数。
示例:
#include<iostream>
class Student {//class + 类名 + {};
public:
/*
关键字 public 确定了类成员的访问属性。
在类对象作用域内,公共成员在类的外部是可访问的。
您也可以指定类的成员为 private 或 protected ,下面会讲
*/
//成员变量
const char* name;
bool sex;
int age;
const char* sid;
const char* dept;
//成员函数
void attendClass() {
std::cout << "选修课必逃,必修课选逃" << std::endl;
}
void eat() {
std::cout << "疯狂星期四v我50" << std::endl;
}
void playGame() {
std::cout << "大残!一滴!" << std::endl;
}
};//别忘了这个分号哦
int main() {
Student stu;//创建对象,类实例化为对象
//可以实例化多个对象
Student stu1;
Student stu2;
//类的对象的公共数据成员可以使用直接成员访问运算符 . 来访问
stu.name = "Root";
stu.sex = 1;
stu.age = 22;
stu.sid = "141592653589";
stu.dept = "computer science";
std::cout << "我的名字是" << stu.name << "我来自" << stu.dept << std::endl;
stu1.attendClass();
stu2.eat();
//通过"->"访问
Student* stu3=new Student;
stu3->playGame();
}
还记得结构体吗?有没有发现它和类很像?
C++中类和结构体的区别:
- 关键字不同
- 默认访问属性不同,结构体默认是公有访问属性(public),而类默认是私有访问属性(private)
除此之外没有区别,看个人的使用习惯
类成员的访问属性
- public公有属性:类外和类中都可以被直接访问,类外通过对象访问
- protected保护属性:类中及派生类中可以被直接访问,类外需要通过对象调用接口访问
- private私有属性:只有在类中才能被访问,类外需要通过对象调用接口访问
类中如果有成员没有被访问属性修饰,默认是私有属性