2012-12-04 23:20
⁄ 工业·编程
⁄ 共 4391字
一. 虚基类的声明:
1. 虚继承:
在以下类的定义层次中,Derived1与Derived2的对象将各自拥有一个基类子对象Base,类A作为Derived1与Derived2的派生类,将拥有2个基类子对象Base,一个存储在基类子对象Derived1中,另一个存储在基类子对象Derived2中,如果类A想使用两个基类子对象Base,这没问题,但是如果想共享同一个Base子对象,比如使用Base记录同一个状态,而不需要记录多个状态,上述常规继承就不能满...
c++阅读全文
2012-12-04 23:17
⁄ 工业·编程
⁄ 共 3501字
上一篇 using声明、using指示及其作用域详解 说的是函数内部或者全局作用域中使用using声明和using指示的情况,这里说的是在嵌套命名空间中使用using声明与using指示的情况。
//named_namespace.h 命名空间成员声明与定义头文件
[html] view plaincopyprint?
1. #ifndef NAME_17_2_3
2. #define NAME_17_2_3
3. namespace name_17_2_3
4. {
5....
c++阅读全文
2012-12-04 23:16
⁄ 工业·编程
⁄ 共 3122字
1. using 声明:一个using声明一次只能引入一个命名空间成员,从using声明点开始,直到包含该using声明的作用域结尾,声明的名字仅仅在该作用域是可见的,外部作用域中相同的名字被屏蔽,它可以出现在全局作用域,局部作用域或者命名空间作用域中,类中的using声明局限于使用其基类中定义的名字;
using声明将名字直接放入出现using声明的作用域,好像using声明是命名空间成员的局部别名一样,这种声明是局部化的,名字仅仅在us...
c++阅读全文
2012-12-04 23:13
⁄ 工业·编程
⁄ 共 897字
作用域:
作用域和可见性:作用域和可见性可以说是对一个问题的两种角度的思考。
作用域就是讲一个变量或函数在代码中起作用的范围,或者说,一个变量或函数的“有效范围”。
代码中的变量或函数,有的可以在整个程序中的所有范围内起作用,这称为“全局”的变量或函数。而有的只能在一定的范围内起作用,称为“局部”变量。
一对{}括起来的代码范围,属于一个局部作用域
在局部作用域内定义的变量,其有效...
变量阅读全文
2012-12-04 23:08
⁄ 工业·编程
⁄ 共 2454字
1.作用域 作用域是这样一个区域,标识符在程序的这个区域内是有效的。C++的作用域主要有四种:函数原型作用域、块作用域、类作用域和文件作用域。 a.函数原型作用域 函数原型大家还记得吗?比如:void fun(int x);这个语句就是函数原型的声明。函数原型声明中的形参的作用范围就是函数原型作用域。f...
作用域阅读全文
2012-12-04 23:06
⁄ 工业·编程
⁄ 共 1674字
今天在MFC工程中使用了WM_USER定义用户消息,从文档中得知ON_MESSAGE的消息处理函数应该符合如下格式:afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)。其中的作用域"CWnd::"引起了我的好奇。我们知道,消息处理函数只能在CWnd的派生类中定义或者重载,其作用域必然是CWnd派生类。为此我做了个实验:
class Parent {
}; class Child: public Parent { public: int Func(in...
指针阅读全文
2012-12-04 23:04
⁄ 工业·编程
⁄ 共 3125字
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。
用途一:
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的...
c++, typedef, 总结阅读全文
2012-12-04 22:59
⁄ 工业·编程
⁄ 共 2788字
成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。
8.2.1 重载与覆盖
成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual关键字可有可无。
覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4...
c++阅读全文
2012-12-04 22:56
⁄ 工业·编程
⁄ 共 469字
一、普通成员变量 普通成员变量,不能在类声明中初始化。
二、静态成员变量 即类成员变量。这种变量也不能在类声明中初始化。
三、静态常量整型数据成员 静态常量整型数据成员可以在类的声明中初始化,而且只有这种变量可以在类的声明中定义。 class Base { public: Base(){}; private: int a; int b; ...
c++, 初始化阅读全文
2012-12-04 22:51
⁄ 工业·编程
⁄ 共 1175字
在C++中,涉及到作用域的语法很多,经常混淆。所以对作用域与作用域作一个总结,注意这个总结还不完整,当遇到新的语法时再继续补充。
一、全局作用域(global scope) 概念:定义在函数外部的名字具有全局作用域。具有全局作用域的名字可以在整个程序中访问,即使不同文件也可以访问。
二、如何访问全局作用域的变量? 1. 变量在本文件中定义 直接访问。 比如: // file_1.cpp int counter; /...
c++, 作用域阅读全文