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

C++常见面试问题

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

C++常见面试问题

  1. 函数指针

http://c.biancheng.net/view/228.html

  1. 虚函数表指针(类的内存分布一小部分)

https://blog.csdn.net/qq_28584889/article/details/88748923

  1. 构造函数和析构函数可以是虚函数嘛

https://blog.csdn.net/qq_28584889/article/details/88749862

  1. TCP 和 UDP 的区别

https://blog.csdn.net/zhang6223284/article/details/81414149

  1. C++类内存分布

定义一个空类,对该类求sizeof结果为1,因为在声明该类型的实例的时候,必须知道这个类在哪存在,否则无法使用这些实例。至于一个空类占多少内存,由编译器决定,vs中每个空类型的实例占用1字节的空间。
如果在该类型中添加一个构造函数和析构函数,再对其求sizeof还是1,因为你生命一个空类本身就存在默认构造函数和析构函数。
那如果把析构函数声明为虚函数,或者定义一个虚函数,发现再求sizeof变成了4!(在32位的机器上,如果是64位则是8)
原因是C++的编译器一旦发现一个类中有虚函数,就会为该类生成一个虚函数表,并在该类的每一个示实例中添加一个指向虚函数表的指针就是vptr。

类的成员变量和成员函数是分开存储的;
只有 非静态成员变量 才属于类的对象上;

class Person{
public:
	int m_A;//非静态成员变量;属于类的对象上
	static int m_B;//静态成员变量,不属于类的对象上;(记得类内声明,类外初始化)。
	void func(){} //非静态成员函数;不属于类的对象上,//一份就行,//this指针。
	static void func2(){};静态成员函数,不属于类的对象上;
}
int Person::m_B=0;//类外初始化;
//使用Perosn 创建一个对象,其sizeof为4;

为什么静态成员变量只能类内声明,内外初始化?

父类中所有非静态成员属性都会被子类继承下去,但是父类的私有属性会被编译器隐藏。子类不能访问而已,但是被继承了;

class Father(){
public :
 int m_a;
private:
	int m_b;
protected:
	int m_c;
};
class son :public Father(){
int m_d;
};

//创建一个子类对象,其sizeof为16=4*4;

类的继承关系和内存分布混合;没看太懂;
https://www.cnblogs.com/jerry19880126/p/3616999.html

  1. 野指针

https://blog.csdn.net/l477918269/article/details/89949858

  1. 指针和引用

https://blog.csdn.net/xsydalao/article/details/93623647

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

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

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