C++语言基础知识
- sizeof作用:
- sizeof空类型,返回值为1。 原因:声明空类型时,必须在内存中占一定的空间,否则无法使用这些实例。占用多少内存,由编译器决定,Visual Studio中,空类型的实例占1字节的空间。
- 构造函数和析构函数的sizof均为1 原因无返回值,相当于是空类型
- 其余函数的sizeof 根据的是它的返回值
- 虚函数:相当于指向虚函数表的指针,32位的话 ,一个指针占4字节,64位的话,指针占8字节。
- 赋值运算符函数:
- tip:运算符重载:即实现运算符多态的一种方法,修改传统运算符的方式。
- 格式:
return_val operator op(argument -list)
符号含义:
- return_val: 返回值,可选,例如重载+ 一般都有返回值, 重载=号 可就没返回值。
- operator: 重载符号:默认
- op: 需要重载的符号例如:+ - * /
- argument-list :重载的参数 例如int+int 那么重载的参数就是int
实例:
#include "stdafx.h"
class People
{
public:
//构造函数和析构函数
People();
~People();
public:
char walk();
float getCount();
People operator+(const People&op_People);//重载加号运算符
};
可以看出,头文件中,定义了一个重载+号符号的运算符重载函数
接下来是实现:
// SizeofDemo.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "SizeofDemo.h"
using namespace std;
People::People()
{
cout << "This is a people!" << endl;
}
People::~People()
{
}
char People::walk()
{
cout << "sss"<<endl;
return 0;
}
People People::operator+(const People&op_People)
{
cout << "重载成功" << endl;
People mm;
mm = op_People;
return mm;
}
float People::getCount()
{
return 22.6;
}
int _tmain(int argc, _TCHAR* argv[])
{
People * p_People = new People();
cout << sizeof(p_People->walk()) << endl;
delete p_People;
People cir_dd;
People dd;
People cir = cir_dd +dd; //测试重载
system("pause");
return 0;
}
运行结果:
可以看出 重载成功,实现了+号的多态。
最后,如果你想学C++可以加Q群:825414254获取素材资料以及开发工具和听课权限!
网友评论