c++小知识点6.0

1.作用域操作符’::’有什么用?

主要是用来调用全局变量,比如说在void main()的前面定义了int N;而在main中又定义了一个局部变量N,如果直接打印N,则显示的是main中的值;如果加上::,则显示在void main中定义的N的值.

(1)全局域和局部域都定义了相同名字的变量a,默认情况下局部变量隐藏全局变量,如果想调用全局变量a,应该这样:“::a”;
(2)调用类的静态成员:“类名::静态成员名”;
(3)子类中调用父类中被隐藏的成员:“父类名::成员名”;

2.可否给一个简单的指针代码?据说它能指哪就指哪?那它怎么指?

指针是可指向变量或是函数,和引用差不多,但机理不同.在定义了一个指针,比如:GetMax *M后,可以把其它变量的值赋给它,就是指向了.
int a = 1;
int *p = &a;
cout << *p << endl;
p++; //p指向非法区域
cout << *p << endl;

3.void main带参数与不参数的区别是什么?比如int main (int argc, char *argv[])?

main带参数可以从命令行给其传实参,不带参数就没有这样功能

4.为何控制台程序中,int main()中只能返回int,那如果要返回其它的类型要怎么改?

改成你要的返回类型就行了,但是好像没什么意义

5.return 0 是什么意思?那这个呢using namespace std ?;

return 0;向操作系统返回值表示程序正常退出。一般0表示正常退出,非0表示不正常退出

6.可否给一个简单的new和delete的代码?如何使用它们?

int *a = new int(1); // 分配一个整型空间初始化为1,将其地址赋给指针a
(*a)++;
delete a;

7.C++的重载函数怎么理解?

就是在继承中,重写父类的值.
重载是指不同的函数签名表示不同的函数,这里的签名是指“函数名+函数参数类型+参数个数”,不包括返回值。

请问int main()与void main()的区别 ?

声明函数的类型为整型,标准C++规定main函数必须声明为int型,因为它会return 0;
好好看书,另外以后提问要给分.

指针和引用的区别是什么?

引用只是别名,其地址与原数据一致,而指针是存放原数据地址.引用不分配内存,而指针分配内存.

指针是一种数据类型,其本身将占用内存空间它的值就是地址,引用不是值不占存储空间,引用只有声明没有定义,一但确定就不能改变,如:int a;int & i=a;i就是a的别名了,不能改变成别的变量的别名了;
指针则可以改变其值;如: int a;int;b;int *ps=&a;ps=&b; 按指针传递时虽然是直接对指针指向的值操作但是会产生指针本身的副本,所以有些地方要用到二级指针,而引用不会,引用是C++中的一个新的概念.

引用的一些规则如下:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

什么样的类设计叫好类?

类的设计随着需求而变化,我们不可能拥有完美的类。各种性能几乎都是冲突的,取舍是关键。我个人认为类的设计有下面的要求:

1 能得到正确的结果,起码部分正确。

2 是健壮的,能够避免错误使用。能够监测异常(不一定是C++ 的exception),并且提交;或者能够屏蔽异常。
这往往与极端的执行效率相冲突,而它和强大的扩展性碰到一起则与往往与复杂性相冲突。

比如,当你不想提供copy ctor时,把copy constructor 声明为private之类就可以增加健壮性。 有时我们希望异常透明 —— 一旦发生意外就向上提交; 有时我们则希望屏蔽异常。比如,数组越界时,我们可以抛出异常,也可以返回一个哑元。 这取决于用户需要什么。

3 是灵活、低耦合、可重用、可扩展的。
这一旦和正确性、健壮性合到一起 —— 就成为巨大设计负担。

4 是高效的,时间上,空间上,资源利用上等等。
极端的高效,往往与上述2、3冲突,甚至与1冲突。 为了高效,我们有时候甚至不需要正确的结果 —— 只要结果“差不多”就可以了。

5 外部接口是简单清晰的,很好用。
这个有时候与上面2/3/4都冲突。 要安全,就往往带来麻烦,特别是C++异常。灵活也是一样。而为了达到高效,我们常常需要把东西复杂化精密化。

6 代码是简短的、清晰的、自解释的。
代码少而精简好处非常多 —— 他减少了bug的可能,他令阅读和维护都变得方便。但是他常常与1~5都冲突。

虚函数的作用是什么?

基本上是。如某类中的一个成员函数被说明为虚函数,这就意味着该成员函数在派生类中可能有不同的实现。当使用这个成员函数操作指针或引用所标识对象时,对该成员函数调用采取动态联编方式,即在运行时进行关联或束定
为实现多态作准备!!!

什么是虚函数???
虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。

什么是多态???
多态是面向对象程序设计和面向过程程序设计的主要区别之一,何谓多态?一名俗话说:“龙生九子,子子不同”多态就是同一个处理手段可以用来处理多种不同的情况。

析构函数和虚函数的用法和作用?

置于“~”是析构函数;析构函数因使用”~”符号(逻辑非运算符),表示它为腻构造函数,加上类名称来定义。
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用!

虚函数是C++多态的一种表现
例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。
使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0
我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值