类
除了下面几点不同外,类(class)可以当做结构体(struct)来处理
#include<iostream>
#include<string.h>
using namespace std;
//程序代码结构1:在类里定义和实现方法(函数):这些方法有可能会以inline处理
//程序代码结构2:.h类的定义声明,不在类内去实现方法,编译器不会将方法inline处理(防止头文件重复声明:#pragma once)
//编码规范:.h文件用来定义类; .cpp文件实现类的成员函数
struct Student
{
public://c++升级3:可以对成员加入访问权限(访问权限的好处:隐藏了数据(封装))
//public(可以在结构体或类外访问)
//protected(只允许结构体或者类内访问)
//private(只允许结构体或者类内访问)
int m_id;
char m_name[20];
private:
int m_age;
char m_sex;
public:
int print()//c++升级2 :可以在struct里定义函数
{
cout << "hello world" << endl;
m_age = 11;
m_sex = 'F';
cout << m_sex << endl;
}
void setAge(int age)
{
m_age = age;
}
int getAge()
{
return m_age;
}
};
class Student2 :public Student //继承
{
};
int main()
{
//struct Student stu;//C语言中定义
Student stu;//c++升级1:可以省略struct关键字定义变量
stu.print();
stu.setAge(10);
cout << stu.getAge() << endl;//如何对protected和private成员进行访问: 提供了set /get 方法
//struct升级的目的:引入class类型“类”;
//struct VS class
//1、叫法:struct结构体、class类 ; struct定义的变量是结构体变量,class定义的变量是对象;
// 叫法2:struct/class :变量称之为属性或者是成员变量;函数称为方法
//2、默认访问权限:struct默认是公有的(public)、class默认是私有的(private);
Student2 stu2;
stu2.m_id;
return 0;
}
升级1:定义变量
Student stu;
升级2:可以保存变量和函数
升级3:用class(类)替换struct(结构体)
Teacher t1;//t1对象
升级4:引入了访问权限修饰符
public(可以在结构体或类外访问)
protected(只允许结构体或者类内访问)
private(只允许结构体或者类内访问)
升级5:实现继承,多态