收藏本版 |订阅

编程语言 今日: 0|主题: 642|排名: 14 

  • 按照类型名称动态创建对象
    1 引言 我的一个实际项目中,由于希望通过一致的接口控制各种型号的设备,并且可以方便的随时扩充,以便将来支持更多的型号。因此,必须在运行时指定设备的型号。 为了使应用程序可以透明的控制各种型号的设备,所以建立了一个简单的继承体系,设计一个协议类(Protocol Class)作为设备的控制接口,并且为每个型号的设备设计 ...
    3149 [db:作者] 发表于 2016-10-17 编程语言
  • Google C++编程风格指南(八):规则之例外
    编程风格指南的使用要点在于提供一个公共的编码规范,所有人可以把精力集中在实现内容而不是表现形式上。我们给出了全局的风格规范,但局部的风格也很重要,如果你在一个文件中新加的代码和原有代码风格相去甚远的话,这就破坏了文件本身的整体美观也影响阅读 规则之例外 前面说明的编码习惯基本是强制性的,但所有优秀的规 ...
    395 [db:作者] 发表于 2016-10-17 编程语言
  • C++中的引用(reference)
    1.简介 引用是C++引入的新语言特性。从语意上来说,引用就是一个变量的别名,就好象古代人的“字”和“号”,东坡居士和苏轼只是一个人的不同称呼。对引用的操作对变量产生的影响与对变量直接操作完全一样。例如: int i = 0; int & iRef = i; iRef++; // i = iRef = 1 尽管引用不使用指针的操作符(*, ->)但是,它看上去 ...
    3103 [db:作者] 发表于 2016-10-17 编程语言
  • 如何在派生类中的隐藏基类的虚拟重载函数
    我创建了一个类,基类中有虚拟重载函数。我想在派生类中改写基类中的虚拟重载函数。代码如下: #include class B { private: int nNumber; public: virtual void test() { cout 基类中有两个重载的test函数。当我在派生类中改写其中的一个函数时,我觉得另外一个应该在派生类中继承,但编译时出现一下错误 ...
    3104 [db:作者] 发表于 2016-10-17 编程语言
  • Pentium III处理器的单指令多数据流扩展指令(1)
    关键字 : Pentium,处理器,单指令多数据流扩展指令,SSE,指令集 概要 : 随着Intel Pentium III处理器的发布,给程序设计人员又带来了许多新的特性。利用这些新特性,程序员可以为用户创造出更好的产品. Pentium III和Pentium III Xeon(至强处理器)的许多新特性,可以使她能够比Pentium II和Pentium II Xeon处理器有更快的运行 ...
    397 [db:作者] 发表于 2016-10-17 编程语言
  • 实现真正意义上的二维动态数组模板
    我们可以通过动态数组的反例来确定动态数组应该具有哪些特性。大家都知道以下的方式是定义一个静态数组。 int iCount[10]; int iCount[10][10]; 从上面可以看出,定义了静态数组之后,无论程序如果使这个数组,该数组在内存中所占空间的大小,位置是确定不变的。 我们可以得出结论,对于编译器,静态数组的大小和空间是已知 ...
    397 [db:作者] 发表于 2016-10-17 编程语言
  • C++字符串完全指引之一:Win32 字符编码
    引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型之间的转换。 在第一部分,我们将介绍3种字符编码类型。了解各种编码模 ...
    395 [db:作者] 发表于 2016-10-17 编程语言
  • 读取注册表中一个子键下的所有子键
    #include [TR] TRegistry &temp=*new TRegistry(); TStringList &listvalue= *new TStringList(); TStringList &listkey =*new TStringList(); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner)      : TForm(Owner) { } //------------- ...
    3149 [db:作者] 发表于 2016-10-17 编程语言
  • 设计模式的解析和实现(C++)之十八-Iterator模式
    作用: 提供一种方法顺序访问一个聚合对象中各个元素,,而又不需暴露该对象的内部表示. UML结构图: 解析: Iterator几乎是大部分人在初学C++的时候就无意之中接触到的第一种设计模式,因为在STL之中,所有的容器类都有与之相关的迭代器.以前初学STL的时候,时常在看到讲述迭代器作用的时候是这么说的:提供一种方式,使得算法和容 ...
    3147 [db:作者] 发表于 2016-10-17 编程语言
  • 宏的妙用
    1、概述 C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使 得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举 。这里,仅仅列举几个典型的用法,希望大家能够从中获益。 2、实现多环境兼容 常见的情况是,我们实现了一个函数,希望它只在某种编译条件满足是被编译和使用。例如 ...
    3154 [db:作者] 发表于 2016-10-17 编程语言
  • C++的++和--运算
    ++是C++的自增运算符,作用是使变量自加1;--是自减运算符,作用是使变量自减1。++和--有两种用法,一种是前缀用法,一种是后缀用法。前缀用法如:++i、--i ,后缀用法如i++、i--,前缀用法跟后缀用法的差别在于前缀时++i的值为完成i加1后的值,--i为完成i减1后的值。例如:假设i的初值为3,执行cout#include using namesp ...
    3162 [db:作者] 发表于 2016-10-17 编程语言
  • 《Effective C++》读书笔记03:多才多艺的const
    const是我们写c++代码时的常客,对于那些我们不希望修改的对象,最好用const进行 修饰。 1.下面来看看一些惯用法: 1 char greeting[] = "Hello"; 2 char* p = greeting;             //非const指针,非const数据 3 const char* p = greeting;       //非const指针,const数据 4 char  ...
    3157 [db:作者] 发表于 2016-10-17 编程语言
  • C++打印STS图形
    用循环语句打印下列图案: STS #include using namespace std; int main() {   int n=10;    for(int i=1; i
    3256 [db:作者] 发表于 2016-10-17 编程语言
  • 简介C++中的const
    1、const 引用是指向 const 对象的引用: const int ival = 1024; const int &refVal = ival; // ok: both reference and object are const int &ref2 = ival;  // error: non const reference to a const object 可以读取但不能修改 refVal。同理,用 ival 初始化 ref2 也是不合法的。ref2 是普通的非 const 引用,因此可 ...
    3362 [db:作者] 发表于 2016-10-17 编程语言
  • 《Effective C++》读书笔记07:为多态基类声明virtual析构函数
    这个问题在实践中偶尔会碰到,设计一个TimeKeeper基类和一些派生类来记录时间: 1 class TimeKeeper 2 { 3 public: 4   TimeKeeper (); 5   ~TimeKeeper(); 6 7 }; 8 9 class AtomicClock: public TimeKeeper {}; //原子钟 10 class WaterClock: public TimeKeeper {}; //水钟 在使用时,我们可能会使用factory工厂方法 ...
    3360 [db:作者] 发表于 2016-10-17 编程语言
  • C和C++语言学习总结(二)
    4、函数参数传递 C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递. "值传递"的示例程序.由于Func1 函数体内的x 是外部变量n 的一份拷贝, 改变x 的值不会影响n, 所以n 的值仍然是0. void Func1(int x) { x = x + 10; } … int n = 0; Func1(n); cout "指针传递"的示例程序.由于Func2 函数体内的 ...
    3318 [db:作者] 发表于 2016-10-17 编程语言
  • C++指针和数组
    数组的指针即整个数组在内存中的起始地址,而数组元素的指针是数组中某一元素所占存储单元的地址。 利用指针法引用数组元素能使目标程序质量高、占内存少、运行速度快。 C++语言中规定:数组名就代表数组首地址,也就是数组第0号元素的地址。如 int a[10]; int *p; p=&a[0];/*与p=a,是等价的*/ p+i或a+i就是a元素的存储地 ...
    3325 [db:作者] 发表于 2016-10-17 编程语言
  • C++:阻止派生类(derived class)重新定义虚函数(final&sealed)
    阻止派生类重新定义虚函数, 在java和C#中可以很简单的实现(finale&sealed), 但在C++中则需要使用public继承+复合(composition)的方法; 注意: 使用私有继承(private), 无法实现此要求. 如: /************************************************* File: test.cpp Copyright: C.L.Wang Author: C.L.Wang Date: 2014-04-11 ...
    3130 [db:作者] 发表于 2016-10-17 编程语言
  • C++:显示接口&运行期多态 和 隐式接口&编译期多态
    类(class)和面向对象: 显示接口(explicit interface): 即在源代码中可见, 可以在头文件内看到类的所有接口; 运行期多态(runtime polymorphism):成员函数是virtual, 传入类的引用或指针时, 在运行时, 会自动匹配接口, 可能是基类的接口, 也可能是派生类的; 模板(templates)和泛型编程(generic programming): 隐式接口(implic ...
    3125 [db:作者] 发表于 2016-10-17 编程语言
  • C++:模板类使用成员函数模板处理隐式(implicit)转换
    指针支持隐式转换(implicit conversion), 在动态绑定中,派生类指针可以转换为基类指针. 但是模板的实例化(instantiations)之间, 是单独存在的, 派生类的实例化的模板(SmartPtr), 不能转换为基类实例化的模板(SmartPtr); 需要明确的编写, 因为派生类也可以继续做为基类, 产生派生类, 所以无法直接写出构造函数. 使用成员函数 ...
    3130 [db:作者] 发表于 2016-10-17 编程语言
  • 下一页 »

    快速发帖

    还可输入 80 个字符
    您需要登录后才可以发帖 登录 | 立即注册

    本版积分规则

    关注公众号

    相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖
    关注公众号
    QQ客服返回顶部