初识C++中的Class类(一),及自我见解。

目录

C++中struct和class的区别;

class的简单结构; 

外部调用类内公有函数操作私有成员的格式(封装性);

类的实现有那些方式,有什么异同;

面向对象的编程的4大特点:

类的实例化:(不要画大饼)

类的大小:

字节对齐的现象:

this指针(隐藏)普通成员函数:


C++中struct和class的区别;

        在C++中,因为C++要兼容C语言,所以在C++中struct可以和在C语言中一样当成结构体使用。此外C++中Struct还可以用来定义类,与使用class定义类的唯一区别就是:class的成员默认访问方式是private、而Struct的成员默认访问方式是public。

class的简单结构; 

class name{

//访问限定符,作用域从当前位置开始到下一个访问限定符或者类的结束。
public:            //共有,可被外界访问,可以做为外界访问类内private的中介,安全性差,
private:           //私有,不可直接被外界访问,安全性高
protected:       //保护,与私有成员相似,但可被派生类(子类)访问。

};        

外部调用类内公有函数操作私有成员的格式(封装性);

        class_name.member_fun();

类的实现有那些方式,有什么异同;

        1、声明与实现在类内;

        2、声明与实现分开写,声明可以写在头文件文件(.h)中,实现写在C++文件(.cpp)中。

唯一区别:声明与实现在类内,编译器会自动将其扩展为内联函数

面向对象的编程的4大特点

        抽象、封装、继承、多态。

        封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。

        封装的本质:一种管理方式。

        封装的目的:安全。

类的实例化:(不要画大饼

类的大小

        空类-------->一个字节(低保

字节对齐的现象:

        eg1.

class Test{
private:
    char a;    
    double b;
    int c;
};

#include<iostream>
#include<string>
using namespace std;
class Test{
private:
	char a;	
	double b;
	int c;
};
void main(){
	cout << "Test :" << sizeof(Test) << endl;
}

        eg2.

 class Test{
private:
    char a;
    int c;
    double b;
};

#include<iostream>
#include<string>
using namespace std;
class Test{
private:
	char a;	
	int c;
    double b;
};
void main(){
	cout << "Test :" << sizeof(Test) << endl;
}

类内函数不会改变类的大小。

         class_name   T1,T2,T3,T4,...,T4;

this指针(隐藏)普通成员函数:

        特性:

        1、this指针的类型:类 类型 *const;

        2、只能在“成员函数”的内部使用;

        3、本质上,一个成员函数的形参,对象中不存储this指针;

        4、为第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不许用户传递。

示例代码:

#include<iostream>
using namespace std;

class A{
public:
	void m_fun();
	void SetA4(int a)
	{ 
		a4 = a;
	}
	void Show()
	{
		cout << "a4 = " << a4 << endl;
	}
private:
	int a4;
};
void A::m_fun(){
	cout << "This is A::m_fun()" << endl;
}
void main(){
	A a;
    a.m_fun();
	a.SetA4(10);
	a.Show();
}

  • 6
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值