C++常用代码入门

1:从C 到C++ 的语法注意 关于Struct

 C++语言将struct当成类来处理的,所以C++的struct可以包含C++类的所有东西,例如构造函数,析构函数,元等,

struct HE
{

 int a =0;
}  // C++  C 编译不能通过

初始化方式:

 C++的struct初始化

struct HE
{
     int a;

};
int main(){
    HE d={3};  // 因为 HE在C++是类名,可以省略struct。C语言里面要加上struct 才行。
    return 0;
}

 

类的初始化方式

  struct HE
{
     int a;
     
};
int main(){
    HE d;
    d.a = 3;
    return 0;
}

 

 

扫描二维码关注公众号,回复: 1218707 查看本文章

C里面定义数据类型

 struct HE  a; //C语言方式

 HE          a;//C++方式

 

 2:C++定义全局变量

  1. extern char g_szBuffer[]; // 环形缓冲区  

 

   char g_szBuffer[1024];

 一般定义static 全局变量时,都把它放在.cpp文件中而不是.h文件中,

 

  全局常量(const)

  extern const char g_szBuffer[];      //写入 .h中

   const char g_szBuffer[] = "123456"; // 写入.cpp中

 

3:关于变量类型

C中都是用  

 int i =   (int )a; 这种方式转化  而C++中最好使用 static_cast、dynamic_cast

 

4:关于内联 定义在类声明之中的成员函数将自动地成为内联函数

例如

class A

{

    public:

     void Foo(int x, int y) {  } // 自动地成为内联函数 不用加入inline标识

}

将成员函数的定义体放在类声明之中虽然能带来书写上的方便,但不是一种良好的编程风格,上例应该改成:

// 头文件

class A

{

    public:

    void Foo(int x, int y);

}

// 定义文件

 inline void A::Foo(int x, int y){}  //类外的话需要加入inline进行标识

 

4:数组初始化

TCHAR szBuf[MAX_PATH] = {0};

静态变量的初始化

class Person{

static int Sum;
}; 
int Person::Sum = 0;

6:关于注释: 

如果涉及到大量注释不要使用/* */了 ,直接使用 

#if 0

#endif  注释

7:依然关于struct

*数组里面嵌套结构体,初始化赋值的方法
*数据利用{}初始化, 结构体也用{}初始化
//定义消息类型--执行函数宏
#define DUI_ON_MSGTYPE(msgtype, memberFxn)                                \
	{ msgtype, _T(""), DuiSig_vn, (DUI_PMSG)&memberFxn},                  \

//结构定义
struct DUI_MSGMAP_ENTRY //定义一个结构体,来存放消息信息
{
	CDuiString sMsgType;          // DUI消息类型
	CDuiString sCtrlName;         // 控件名称
	UINT       nSig;              // 标记函数指针类型
	DUI_PMSG   pfn;               // 指向函数的指针
};

/***
*数组里面嵌套结构体,初始化赋值的方法
*数据利用{}初始化, 结构体也用{}初始化
***/
UILIB_COMDAT const DUI_MSGMAP_ENTRY   theClass::_messageEntries[] =     \
	{
 
		{ DUI_MSGTYPE_CLICK, _T(""), DuiSig_vn, (DUI_PMSG)&OnClick},  
		
		DUI_ON_MSGTYPE(DUI_MSGTYPE_SELECTCHANGED,OnSelectChanged)

		{ _T(""), _T(""), DuiSig_end, (DUI_PMSG)0 }                           \
	}; 

 

 C语言中也是 关于数组的初始化,常用{}这种方式

数组的初始化: 

int a[]={1,2,3}; 这种方式初始化,大括号里写了几个元素那么数组里就有几个元素,相当于int a[3]={1,2,3} 

8: vs配置第三方代码 常用的配置 tinyxml



 

 9:代码转化 

#ifdef _UNICODE

            int iLen = desc[iIndex].length();

            LPWSTR lpText = new WCHAR[iLen + 1];

            ::ZeroMemory(lpText, (iLen + 1) * sizeof(WCHAR));

            ::MultiByteToWideChar(CP_ACP, 0, desc[iIndex].c_str(), -1, (LPWSTR)lpText, iLen) ;

            _stprintf(szBuf, lpText);

            delete[] lpText;

#else

猜你喜欢

转载自yangbinfx.iteye.com/blog/1979697