![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
请教几个C++的问题。
2:在类中,什么情况下用公有函数,什么情况下用私有函数?
3:虚函数,这个有什么用?直接在派生类中定义不就行吗? 展开
C++是编程语言,它本身只具有数据处理等最基本的功能,要实现其他功能都要靠对应的软件开发包(SDK),对于播放音乐、视频等多媒体在Windows上可以使用MCI系列的开发包来实现
公有与私有一般主要是团队开发的时候才会用得上。比如你定义的一个类,在处理数据的时候有若干中间过程你写成了函数但不想给其他人调用,就把他定义为私有函数。当然,完全由自己开发的程序使用私有函数也有一定的意义,那就是增强程序的可读性和可维护性。
虚函数的用处大了去了。就拿界面设计来说,不管是什么系统的用户界面开发,各种界面元素都有一个共同的父类,像按钮、文本框等都派生自这个父类,这样系统就可以用一个父类数组将这些界面元素都存下来。当系统要把这个界面绘制出来的时候,就遍历这个数组,调用这些界面元素的绘图程序。按钮和文本框的绘图程序肯定是不一样的,如果不用虚函数,你必须要先判断窗口的类型,再调用相应类的绘图程序,也就是说要写一大堆的switch...case...或者if...else if...但是如果用虚函数的话,统统调用父类的绘图函数,这将极大简化程序。
另外,虚函数还有一个作用。还是拿绘制界面来说,有时候你可能要定义你自己的界面元素。使用虚函数的话,你只需要从那个父类派生一个你自己的类,然后重载那个绘图的虚函数,这样你定义的界面元素就能正常使用了。
那SDK开发包又是怎么来的?汇编吗?
SDK一般由一些大型软件开发商提供,比如微软就为Windows系统上的开发提供了大量的SDK。这些SDK应该也是由各种编程语言编写的,它们调用更为底层的系统接口来实现各种功能。
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-05-11 广告
x?y:z 意义是: 如果x成立(为真), 则整个表达式(x?y:z)的值为y; 反之, 如果x不成立, 值为z.
例如:
int a = 1, b = 2;
int i = (b>a)?a+b;a-b; // i = 3
int j = (a>b)?a+b;a-b; // i = -1
2. 组合还是派生, 要根据现有类. 从本例中, 头明显是由上述构成的, 因此是几种的组合.
一个很好的办法, 就是不去管是组合还是派生, 只要你创造的类能完成所有功能, 就用哪个, 去尝试, 你会自己找到答案的. 本例亦如此, 鼻子只有嗅觉和呼吸, 头呢, 头能吃饭(靠嘴), 鼻子不能, 从鼻子派生出来还是不能, 因此智能选组合, 必须组合鼻子和嘴, 好了, 头还能听声音看世界(靠耳朵和眼睛), 因此必须再组合耳朵和眼睛.
3. c++中有四个操作符不能是全局域中的重载, 这四个操作符是: =, ->, operator[ ], operator().
这些运算符必然不能为静态成员.
2、私有成员函数就是不公开的API 通过在共有成员函数里面调用私有成员函数。防止数据被破坏
3、虚函数 实现动态编连基础。。 动态只在运行代码的时候才知道调用哪个函数。 基类里面有个虚函数,派生类重写。通过基类的指针。 指向基类调用基类的函数,如果指向派生类调用派生类的函数