栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++40个入门知识点

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++40个入门知识点

此处讲两个知识点:
1.类的访问权限:
//类的访问权限检查时机
//在编译时期对访问权限进行限制,在程序运行时期可以进行修改
突破访问权限的方法:

//如何突破类的限制访问类的成员变量?常规语法不可以,可以通过指针的方式进行访问
//左侧含义,&clock取对象地址,(int*)&clock将地址强制准换为int指针,*(int*)&clock取指针下的内容
	*(int*)&clock = 111;

2.利用C语言模拟类的封装
个人总结:此处讲了C到C++的过程,其中的指针可以看做C++的this指针(理解可能不够深刻)
封装方法:

**//封装:**
//函数指针,相当于变量,需要赋值
typedef void((*PFN_SetHour)(int n));
//C语言模拟类的封装
struct taglock {

	int nHour;
	int nMinute;
	int n_Second;

	PFN_SetHour pfnSetHour;
};

void SetHour(struct taglock* c1,int n) {

	c1->nHour = n;

}

//调用函数
struct taglock c1;
	c1.pfnSetHour = SetHour;
	//类似于类中成员函数的调用
	c1.pfnSetHour(&c1,1);

3.学习地址:类的访问权限及C语言模拟类的封装
4.学习笔记:

#include 
#include "clock.h"

//面向对象:
//三个特点
//1.封装
//2.继承
//3.多态

//封装特点
//C++中对结构体(C中只有数据)进行了扩展,允许将函数放到结构中
//把数据及数据操作的方法放在一起组成一个结构体


struct Cloth{
	
	int nColor;
	int nSize;

};

//结构体:内部成员可以随便访问,默认公有
struct WashMchine {
private:
	int nWidth;
	int nHeight;
	int nLength;
	int nType;//类型(滚筒,波轮)
	int nBland;//品牌

	void wash(Cloth& cl) {
		printf("洗衣服 颜色=%d 大小=%drn",cl.nColor,cl.nSize);
	}
};


//class--类:命名一般是在前加C,默认为私有权限
class CWashMchine {

//成员变量一般私有
private:	
	//数据成员/成员变量(member)命名规范前加m_
	int m_nWidth;
	int m_nHeight;
	int m_nLength;
	int m_nType;//类型(滚筒,波轮)
	int m_nBland;//品牌
//成员函数一般公有
public:
	//成员函数
	void wash(Cloth& cl) {
		printf("洗衣服 颜色=%d 大小=%drn", cl.nColor, cl.nSize);
	}

};

//访问权限(指在当前类域之外访问的规则)
//1.public 公有(类域内外均可访问的权限)
//2.protect 保护(继承中使用)
//3.private 私有(类域中可以访问,类域外无法访问)

//结构体 默认的访问权限是public
//类     默认访问权限是private

//函数指针,相当于变量,需要赋值
typedef void((*PFN_SetHour)(int n));
//C语言模拟类的封装
struct taglock {

	int nHour;
	int nMinute;
	int n_Second;

	PFN_SetHour pfnSetHour;
};

void SetHour(struct taglock* c1,int n) {

	c1->nHour = n;

}

//类的访问权限检查时机
//在编译时期对访问权限进行限制,在程序运行时期可以进行修改

//某一个函数不是孤立存在的,是依靠某一个对象存在的
int main(int argc,char* argv[])
{
	//类名     对象(类的实例化)
	CWashMchine wm;
	Cloth cl;

	wm.wash(cl);

	CClock clock;
	//clock.m_nHour = 1;

	struct taglock c1;
	c1.pfnSetHour = SetHour;
	//类似于类中成员函数的调用
	c1.pfnSetHour(&c1,1);
	
	//如何突破类的限制访问类的成员变量?常规语法不可以,可以通过指针的方式进行访问
	//左侧含义,&clock取对象地址,(int*)&clock将地址强制准换为int指针,*(int*)&clock取指针下的内容
	*(int*)&clock = 111;

	clock.SetHour(25);

	return 0;
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号