现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-12-04 23:20 工业·编程 ⁄ 共 4391字 暂无评论
一.   虚基类的声明: 1.  虚继承: 在以下类的定义层次中,Derived1与Derived2的对象将各自拥有一个基类子对象Base,类A作为Derived1与Derived2的派生类,将拥有2个基类子对象Base,一个存储在基类子对象Derived1中,另一个存储在基类子对象Derived2中,如果类A想使用两个基类子对象Base,这没问题,但是如果想共享同一个Base子对象,比如使用Base记录同一个状态,而不需要记录多个状态,上述常规继承就不能满...
阅读全文
上一篇  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....
阅读全文
1. using 声明:一个using声明一次只能引入一个命名空间成员,从using声明点开始,直到包含该using声明的作用域结尾,声明的名字仅仅在该作用域是可见的,外部作用域中相同的名字被屏蔽,它可以出现在全局作用域,局部作用域或者命名空间作用域中,类中的using声明局限于使用其基类中定义的名字; using声明将名字直接放入出现using声明的作用域,好像using声明是命名空间成员的局部别名一样,这种声明是局部化的,名字仅仅在us...
阅读全文
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字 评论 1 条
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的...
阅读全文
    成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。 8.2.1 重载与覆盖     成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4...
阅读全文
2012-12-04 22:56 工业·编程 ⁄ 共 469字 暂无评论
一、普通成员变量 普通成员变量,不能在类声明中初始化。 二、静态成员变量 即类成员变量。这种变量也不能在类声明中初始化。 三、静态常量整型数据成员 静态常量整型数据成员可以在类的声明中初始化,而且只有这种变量可以在类的声明中定义。 class Base  {  public:      Base(){};  private:      int a;      int b;   ...
阅读全文
2012-12-04 22:51 工业·编程 ⁄ 共 1175字 暂无评论
在C++中,涉及到作用域的语法很多,经常混淆。所以对作用域与作用域作一个总结,注意这个总结还不完整,当遇到新的语法时再继续补充。 一、全局作用域(global scope) 概念:定义在函数外部的名字具有全局作用域。具有全局作用域的名字可以在整个程序中访问,即使不同文件也可以访问。 二、如何访问全局作用域的变量? 1. 变量在本文件中定义 直接访问。 比如: // file_1.cpp  int counter;   /...
阅读全文