• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
BeyondTechnology
博客园    首页    新随笔    联系   管理    订阅  订阅
09 2010 档案
混合使用标准库类string和C风格字符串

摘要:可以使用C风格字符串对string对象进行初始化或赋值string类型的加法操作需要两个操作数,可以使用C风格字符串作为其中一个操作数,也允许将C风格字符串用作复合赋值操作的右操作数。在要求使用C风格字符串的地方不可以直接使用标准库string类型对象无法使用string对象初始化字符串指针:stringst2("hello world"); char *str = st2;    //compl... 阅读全文
posted @ 2010-09-29 01:45 BeyondTechnology 阅读(528) 评论(0) 推荐(0)
创建动态数组

摘要:1、初始化动态分配的数组如果数组元素具有类型,将使用该类的默认构造函数初始化,如果是内置类型,则无初始化:string *psa = new string[10];    //array of 10 empty stringsint *pia = new int[10];        //array of 10 uninitialized ints也可以使用跟在数组长度后面的一对空圆括号,对数组... 阅读全文
posted @ 2010-09-29 01:35 BeyondTechnology 阅读(952) 评论(0) 推荐(0)
C风格字符串

摘要:以空字符null结束的字符数组:char ca1[] = {'C','+','+'};        //no null,not C-style stringchar ca2[] = {'C','+','+','\0'};      //explicit nullchar ca3[] = {'C','+','+'};        //null terminator added automatic... 阅读全文
posted @ 2010-09-29 01:23 BeyondTechnology 阅读(2946) 评论(1) 推荐(0)
指针和const限定符

摘要:1、指向const对象的指针const double pi = 3.14;double *ptr = π        //error:ptr is a plain pointerconst double *cptr = π    //ok:cptr is a pointer to const不能用void *指针保存const对象的地址,而必须使用const void... 阅读全文
posted @ 2010-09-28 22:53 BeyondTechnology 阅读(304) 评论(0) 推荐(0)
字符数组

摘要:char ca1[] = {'C','+','+'};      //no nullchar ca2[] = {'C','+','+','\0'};    //explicit nullchar ca3[] = "C++";        //null terminator added automaticallyca1的维数是3,而ca2和ca3的维数则是4下面的初始化将导致编译时的错误:cons... 阅读全文
posted @ 2010-09-28 22:32 BeyondTechnology 阅读(181) 评论(0) 推荐(0)
头文件

摘要:1、头文件用于声明而不是用于定义定义只可以出现一次,而声明可以出现多次。下列语句是一些定义,不应该放在头文件里:extern int ival = 10;double fica_rate;虽然ival声明为extern,但是它有初始化式,代表这条语句是一个定义。类似地,fica_rate的声明虽然没有初始化式,但也是一个定义,因为没有关键字extern。同一个程序中有两个以上文件含有上述任一个定义... 阅读全文
posted @ 2010-09-28 22:25 BeyondTechnology 阅读(300) 评论(0) 推荐(1)
const对象默认为文件的局部变量

摘要:在全局作用域里定义非const变量时,它在整个程序中都可以访问。可以把一个非const变量定义在一个文件中,假设已经做了合适的声明,就可以在另外的文件中使用这个变量://file_1.hint counter;  //definition//file_2.hextern int counter;  //uses counter from file_1.h++counter;    //increm... 阅读全文
posted @ 2010-09-28 22:05 BeyondTechnology 阅读(850) 评论(0) 推荐(0)
变量的声明和定义

摘要:定义用于为变量分配存储空间,还可以为变量指定初值,在一个程序中,变量有且仅有一个定义。声明用于向程序表明变量的类型和名字。可以使用extern关键字声明变量而不定义它。extern int i;    //declares but does not define iint i;        //declares and defines iextern声明不是定义,也不分配存储空间。只是说明变量定... 阅读全文
posted @ 2010-09-28 21:36 BeyondTechnology 阅读(289) 评论(0) 推荐(0)
父类指针转换成子类指针

摘要:有如下定义:class A {};class B : public A{};A* pA = new B;下列代码无法完成转换的是( )A) B* pB = static_cast<B*>(pA);B) B* pB = reinterpret_cast<B*>(pA);C) B* pB = dynamic_cast<B*>(pA);D) B* pB = (B*)p... 阅读全文
posted @ 2010-09-24 22:37 BeyondTechnology 阅读(2145) 评论(1) 推荐(0)
一些混淆过的输出结果

摘要:下面代码执行后,正确的输出是( ) char *a ="Hello"; char b[6]="Hello"; if (a==b) { if (*a == *b) printf(“AA”); else printf(“BB”); } else { if (*a == *b) printf(“CC”); else printf(... 阅读全文
posted @ 2010-09-24 22:02 BeyondTechnology 阅读(311) 评论(0) 推荐(0)
输出结果

摘要:#include<iostream>#include<complex>using namespace std;class Base{public:virtual void f( int iParam){cout << "Base::f(int)" << endl;};virtual void f( double dParam){cout <&l... 阅读全文
posted @ 2010-09-24 20:58 BeyondTechnology 阅读(199) 评论(0) 推荐(0)
为什么会是这样的输出结果

摘要:#include<iostream>using namespace std;class Base{public:virtual void g( int i = 10 ){cout << i << endl;};};class Derived: public Base{public:void g( int i = 20 ){cout << "Deriv... 阅读全文
posted @ 2010-09-24 20:19 BeyondTechnology 阅读(275) 评论(0) 推荐(0)
基类指针通过子类的虚函数调用子类的非虚函数

摘要:class A {public:  virtual void op();  ……};class B : public A {public:  void op(); // 在这个函数中会调用anotherOperator,但anotherOperator不是虚函数  void anotherOp();  ……};A* a = new B;a-&... 阅读全文
posted @ 2010-09-24 19:56 BeyondTechnology 阅读(1213) 评论(0) 推荐(0)
使用sizeof计算类的大小

摘要:类的sizeof大小一般是类中的所有成员的sizeof大小之和,这个就不用多说。不过有两点需要注意:1)当类中含有虚成员函数的时候,例如:class B{float a;public:virtual void fun(void);}此时sizeof(B)的大小为8,而不是4。因为在类中隐藏了一个指针,该指针指向虚函数表,正因为如此,使得C++能够支持多态,即在运行时绑定函数的地址。2)另一个要注意... 阅读全文
posted @ 2010-09-21 10:40 BeyondTechnology 阅读(16650) 评论(1) 推荐(6)
C++函数重定义、重载、重写

摘要:C++函数重定义、重载、重写1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。 1) 被重写的函数不能是 static 的。必须是 virtual 的 ( 即函数在最原始的基类中被声明为 virtual ) 。 2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型)3) 重写函数的访问修饰符可以不同。尽管 virtual 是 p... 阅读全文
posted @ 2010-09-20 07:23 BeyondTechnology 阅读(22703) 评论(3) 推荐(1)
VARIANT and VARIANTARG Data Types

摘要:The following definition of VARIANT is described in OAIDL.H automation header file:struct tagVARIANT{ union { struct __tagVARIANT { VARTYPE vt; WORD wReserved1; WORD wReserved2; WORD wReserved3; unio... 阅读全文
posted @ 2010-09-19 20:38 BeyondTechnology 阅读(624) 评论(0) 推荐(0)
union:C/C++语言关键字

摘要:1. 共用体声明和共用体变量定义  共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义   共用体声明和共用体变量定义与结构体十分相似。其形式为:   union 共用体名{   数据类型 成员名;   数据类型 成员名;   ...   } 变量名;共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在unio... 阅读全文
posted @ 2010-09-19 20:31 BeyondTechnology 阅读(7834) 评论(1) 推荐(0)
Windows Management Instrumentation (Windows 管理规范) 的秘密

摘要:问题 1:WMI 是什么,它能帮我做什么?问题 2: WMI 适用于那些平台?问题 3:如果 WMI 向外界暴露特定的功能,我如何才能知道?问题 4:如果 WMI 没有提供我想要的功能,我应该怎么办? 问题 5:在哪里可以找到使用 WMI 的示例脚本?问题 6: 为什么我的脚本可以在某个版本的 Windows 上运行,但在另外一个版本的 Windows 上却不能运行?问题 7:为什么 WMI 操作... 阅读全文
posted @ 2010-09-08 23:17 BeyondTechnology 阅读(500) 评论(0) 推荐(0)
MFC坐标转换

摘要:MapDialogRect,转换对话框坐标为像素坐标   功能:该函数把指定的对话框单位映射成屏幕单位(像素)。函数MapDialogRect用变换坐标替换指定的RECT结构中的坐标,这就使得该结构可以用来创建对话框或定位对话框内的控制。  函数原型:BOOL MapDialogRect(HWND hDlg,LPRECT IpRect);  参数:  hDlg:标识对话框。MapDialogRec... 阅读全文
posted @ 2010-09-01 23:39 BeyondTechnology 阅读(7333) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3