#include<iostream>
#include<string>
using namespace std;
struct MM
{
int num;
protected:
string name;
private:
int age;
public :
int text;
};
//保护protected和私有private在继承中有区别,其余几乎没有
void testMM()
{
//MM mm = {28,"name",99,68};//结构体是公开的,但里面的数据有私有,则无法直接初始化写入全部
MM mm;
mm.num = 28;//结构体默认属性是公开,类默认是私有
mm.text = 95;
}
class GF //制作类的模板,一般是一次性的(类本身也是可以限定访问的)
{
//权限限定词(每个类都至少有一种,不写默认私有private,为了继承方便会写protected保护属性,不修改不继承则private私有),类外只能访问公开public属性的事物,类外访问类中的数据,只能通过对象(static属性除外),习惯将public属性 称为 类外的接口
//权限限定词只限定类外对类中的访问,相当于类中相互公开
void printff()
{
cout << "不在限定词下" << endl;
cout << "默认私有" << endl;
}
public ://公开属性,需要在其他函数或者类中调用如输出函数在main函数中调用
//类中实现的函数
void printfData()//类中的函数称为:成员函数
{
cout << m_name << "\t" << m_age << endl;
}
//为了访问原本无法访问的部分,通常提供一些接口
void initData(string name, int age);
protected://保护属性,数据成员一般为私有private或者保护属性protected属性
string m_name;//类中的数据称为:数据成员
int m_age;
private:char c;//私有,不当前类不做继承处理,数据成员写为私有
};
//类外实现类中函数,需要类名限定(修改类的模板)
void GF::initData(string name, int age)
{
m_name = name;
m_age = age;
}
int main()
{
GF L; //制作类的别名实现类
L.initData("LI zi", 19); //这些可访问的就是接口,可以和类外创造信息交互
L.printfData();
}
//写外框声明,写内部数据定义,main调用
//结构体一定程度上可以算默认是公开属性的类,里面可以放限定词限定类外可调用数据
c++类与结构体
最新推荐文章于 2024-03-08 16:28:04 发布