1. 类中的成员函数和成员变量不能同名, 所以同名的变量也会隐藏父类的同名函数.
2.
class Base{
public:
virtual void show(){
cout << "In Base" << endl;
}
};
class Derived: public Base{
public:
void show(){
cout << "In Derived" << endl;
}
};
int main(){
Base b;
b.show();
Derived d;
d.show(); //对函数show()的实调用
d.Base::show(); //对函数show()的实调用
Base *pb;
pb = &d;
pb->show(); //对函数show()的虚调用
pb->Base::show(); //对函数show()的实调用
}
3. 不能在一个类中定义一个常量数组,因为无法为对象的常量数组成员初始化。
一个变通的做法是定义一个指向常量的指针常量,然后在初始化列表中为它初始化。
class A{
int arrsize;
const int * const arr;
public:
A(int n):arr(CreateArr(n)){ arrsize=n;}
~A(){delete[] arr;}
};
4.正确的:
SomeClass obj(5);
SomeClass obj=SomeClass(5);
Someclass obj(SomeClass(5));
SomeClass obj;
SomeClass obj=SomeClass();
p = new SomeClass(5);
p = new SomeClass();
p = new SomeClass;
p = new SomeClass[3]; //一次性产生三个对象
错误的:
SomeClass obj();
SomeClass obj=SomeClass;
SomeClass obj(SomeClass);
SomeClass obj(SomeClass());
p = new SomeClass(5)[3]; //企图为每个对象调用指定的构造函数
5. 在类对象的成员函数中访问该类的别的对象的非公有成员,可通过点操作符进行。
6.
1.除了作用域上的联系之外,其实外围类与嵌套类是两个完全独立的类,并没有其他特殊的关系。
如果将类B的构造函数放到类B的类体之外、类A的类体之内来定义,就会出现编译错误,因为这与重写纯虚函数的语法相冲突。
2.对于局部类,其成员函数可以访问在定义该局部类的函数中定义的静态变量.并且其成员函数必须在函数体内定义.
7. 静态常量成员可以在类体之内和之外初始化, 如果是在类体之外为静态常量成员赋初值,变量前面的const关键字不能省略. 非常量的静态成员不能在类体内初始化.
8.
#include "confuse1.h"
void useClass();
int main(){
A a;
a.show();
useClass();
}
-----------------------------------
#ifndef CONFUSE1_H_
#define CONFUSE1_H_
#include <iostream>
using std::cout;
using std::endl;
class A{
int num;
public:
A(){num=5;}
void show(){
cout << num << endl;
}
};
#endif /*CONFUSE1_H_*/
--------------------------------------
#ifndef CONFUSE2_H_
#define CONFUSE2_H_
#include <iostream>
using std::cout;
using std::endl;
class A{
int num;
public:
A(){num=6;}
void show(){
cout << "another num=" << num << endl;
}
};
#endif /*CONFUSE2_H_*/
-----------------------------------------------
#include "confuse2.h"
void useClass(){
A a;
a.show();
}
-----------------------------------------------
输出结果可能是: 5 5 或者 another num=6 another num=6
9. 抽象类不一定要包含纯虚函数,如果他的构造函数或者析构函数为protected也可以说是抽象类.
10. (一)不定义任何成员的类,其大小为1。
(二)只定义一个数据成员的类,其大小就是该数据成员的大小。
(三)定义成员函数并不会增加对象的尺寸。
(四)定义静态成员不会增大对象的尺寸。
(五)对象尺寸并不一定等于各成员变量尺寸之和。
(六)定义虚函数会导致对象尺寸增加4字节。
(七)任何一个派生类对象都包含一个基类对象。
(八)包含虚函数的类对象在计算成员变量的偏移量时,要考虑虚指针的影响。
假设类B是类A的派生类,类A没有虚函数,类B有虚函数,若有如下代码:
B b; cout << (void*)&b << endl;
A *p=&b; cout << p << endl;
两次输出的结果是否相同? 不相同,后面的比前大4
11.
------------------正确---------------
int getint(){
int tmp;
cin >> tmp;
return tmp;
}
class A{
public:
static const int j; //statement2
};
const int A::j=getint(); //statement3
int main(){
cout << A::j << endl;
}
----------------错误---------------------
int getint(){
int tmp;
cin >> tmp;
return tmp;
}
class A{
public:
static const int j=getint(); //statement1
};
int main(){
cout << A::j << endl;
}
分享到:
相关推荐
本文将深入探讨Symbian OS C++ Unit Testing Framework,这是一个专门为Symbian平台设计的单元测试框架,用于测试C++代码的正确性和稳定性。 单元测试是软件开发中的关键环节,它允许程序员对代码的各个独立部分...
《Visual C++ Unit Test Assistant:助力C语言程序的单元测试》 Visual C++ Unit Test Assistant 是一款专为C语言程序设计的辅助工具,它在Visual C++开发环境中提供了全面的单元测试支持。这款小工具旨在简化开发...
Visual Unit(简称VU)是由国内知名的软件质效技术提供商——凯乐软件公司出品的一款C/C++单元测试、可视编程工具。其拥有可视化、自动化、高效易用等特点,深受广大用户的欢迎。 Visual Unit具有:让程序行为可视...
一款基于 Visual C++ 针对 C 语言程序,帮助提供单元测试环境的小工具:打桩、用例管理(目前暂不支持)、代码静态扫描,以及函数复杂度分析、覆盖率统计(MINGW)等等。本工具仅仅限于技术交流,不可以用于商业目的...
《C/C++单元测试工具Visual Unit2详解》 在软件开发过程中,单元测试是一种至关重要的质量保证手段,它能够帮助开发者验证代码的正确性,确保每个独立模块的功能正常。对于C/C++这样的语言,虽然没有像Java或.NET...
标题 "3d unit source code for learn mfc c++ phyx" 涉及到的知识点主要是C++编程、MFC(Microsoft Foundation Classes)框架、OpenGL图形库以及PhyX物理引擎。下面将对这些关键领域进行详细介绍。 1. **C++编程**...
4. 二进制到十六进制:将二进制数每四位分为一组,然后转换为相应的十六进制字符。 二、存储单位转换 在处理数据存储时,我们常会遇到BYTE、KByte、MByte等单位。其中: 1. BYTE(字节)是最基本的存储单位,一个...
4. **C++_unit03函数**: 函数是C++中的重要组成部分,用于封装可重用的代码块。这一单元会讲解函数的定义、调用,参数传递,以及函数返回值的处理。 5. **C++_unit04類與對象**: 类和对象是C++面向对象编程的基础。...
4. **Unit1.dfm**:这是C++Builder的表单文件,用于定义用户界面布局和组件属性。 5. **c++bulider参考手册.exe**:这可能是郭彬编写的参考手册的可执行电子书版本,便于读者查阅。 6. **Unit1.h**:头文件,通常...
只需选择要测试的源码文件,通过“C++test” -> “Test Using…” -> “Builtin” -> “Unit Testing” -> “Generate Unit Tests”即可自动生成测试用例。生成的测试用例通常存放在“tests”文件夹下,可以直接执行...
### Visual Unit(C/C++单元测试工具)3.0 简明教程 #### 一、安装与示例 - **1.1 运行环境与安装** - **1.1.1 下载与安装** - 可通过官方网站 http://www.KaileSoft.com/Download/ 下载最新版本的 Visual Unit ...
`Unit1.cpp`和`Project1.cpp`是C++源代码文件。在C++Builder中,通常将用户界面(UI)逻辑和业务逻辑分开,这就是所谓的单元(unit)。`Unit1.cpp`可能包含了与主窗体交互的代码,包括事件处理函数,如按钮点击事件...
在本文中,我们将深入探讨"UVC图像获取及Extension unit数据获取"这一主题,这是针对USB视频类(Universal Video Class,简称UVC)设备的一种高级技术应用。UVC标准允许设备如摄像头直接与计算机进行高质量视频流传...
4. Unit1.ddp:这是项目部署文件,定义了项目的编译、链接和部署步骤。 5. Unit1.dfm:这是表单文件,描述了用户界面的布局和组件设置。 6. QR.exe:这是可执行文件,代表编译后的应用程序,可以直接运行进行二维码...
- `TreeUnit.cpp`, `BuildTreeUnit.cpp`, `TreeOption.cpp`:C++源代码文件,分别对应不同的单元(unit),包含了实现上述功能的代码。 - `TreeUnit.ddp`, `TreeUnit.dfm`:Delphi项目文件和表单文件,描述了界面...
- **Unit1.cpp** 和 **Unit1.h**: 这通常是 C++ Builder 中的一个单元(unit)文件,包含了类的定义和实现,可能包含了调用 CODESOFT API 的函数。 - **Project1.cpp**: 可能是项目的主程序文件,包含项目的入口点...
- **定义**:VisualUnit(简称VU)是一款专用于C/C++语言的单元测试工具,它可以帮助开发人员编写自动化测试用例来验证软件模块的功能正确性。 - **功能特点**: - 支持多种测试类型,如函数测试、接口测试等。 - ...
5. **Unit1.cpp**、**Tetris.cpp**、**Unit4.cpp**、**Unit3.cpp**、**Unit2.cpp**:这些都是C++源代码文件,分别代表不同的程序单元。每个单元可能包含了特定的功能,如游戏逻辑、用户输入处理、图形渲染等。 6. *...