c++面试笔试必备知识

<pre name="code" class="cpp">//①静态对象成员
#include <iostream>
using namespace std;

 class A
 {
 public:
     A() { cout << "A's Constructor Called " << endl;  }
 };

 class B
 {
 
 public:
     B() { cout << "B's Constructor Called " << endl; }
	 static A a;
 };

 A B::a;//如果没有这个,则下面的B b不会调用A的构造函数

 int main()
 {
     B b;//a的构造函数在main函数之前就访问了,b的现在才会调用构造函数
	 B::a;//能正常访问
     return 0;
 }
//解释:上面的程序只是调用了B的构造函数,没有调用A的构造函数。
//因为静态成员变量只是在类中声明,没有定义。
//静态成员变量必须在类外使用作用域标识符显式定义。


//②联合体和枚举
#include <iostream>
using namespace std;

 union
 {
     int i;
     char x[2];
 }a;

 class A
 {
	 enum{a,b,c,d};
 };

 class B
 {
	 enum{a,b,c,d}C;
 };
 int main()
 {
	 cout<<"sizeof(A):"<<sizeof(A)<<endl;//输出1
	 cout<<"sizeof(B):"<<sizeof(B)<<endl;//输出4

	  a.i = 0;		//00 00 00 00
     a.x[0] = 10;  //0a 00 00 00
     a.x[1] = 1;  //0a 01 00 00
	 //a小端字节序 a = 0x010a = 266
	 cout<<"a.i:"<<a.i<<endl;
     return 0;
 }

//③下面代码不会报错?
class A {
public:
  int m;
  void print() {  cout << "A\n";  } 
};

//上面的void print();---->void print(A * const this);
int main()
{
	A *pa = 0;
	pa->print();//相当于print(pa)
	return 0;
}
//并不是类没有初始化就不能调用类的成员函数.
//如果成员函数只是简单的打印个东西,没有调用类成员啥的就不会报段错误。


//返回值加const修饰的必要性
//你觉得下面两种写法有区别吗?

A GetA(void);
const A GetA(void);
//答案:没有任何区别。 
//解释:如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。所以,对于值传递来说,加const没有太多意义。 
//所以:
//不要把函数A GetA(void) 写成const A GetA(void)。
//当然 如果是返回引用,那就不一样了。


 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值