您的位置:首页 > 其它

CB XE7 C11 64位编译器 成员变量初始化

2015-02-10 16:11 316 查看
看到了C++11,看到了XE7的64位,想实现下面方便的类成员初始化,失望.

一、64位用法

clang3,64位编译器,不支持中文变量名,编写代码提示没有32位快,风格简单不用写单独的赋值语句函数,一步到位,c#,java都支持的写法。

class TTableNames64
{
public:
String TB1 = "TB1";
String TB2 = "TB2";
// String 变量a; // error 汉字变量不识别
} TableNames64;

//使用只能用一种方式,成员变量
Caption = TTableNames64::TB1;//error  invalid use of non-static data member 'TB1'
Caption = TableNames64.TB1;


二、成员变量初始化赋值法

32位不能想64位那样支持成员变量直接初始化语法不支持。

采用成员变量,构造函数初始化赋值方法,兼容64、32。

class TTableNames3264
{
public:
String TB1; // = "TB1";
String TB2; // = "TB2";

TTableNames3264()
{
TB1 = "TB1";
TB2 = "TB2";
}
} TableNames3264;

//使用只能用一种方式,成员变量
TTableNames3264::TB1; // error invalid use of non-static data member 'TB1'
this->Caption = TableNames3264.TB1;


三、静态成员法

static变量 ,必须用下面的赋值语法。32、64位都支持的语法。

class TTableNamesStatic
{
public:
static String TB1; // = "TB1";
static String TB2; // = "TB2";
} tableNamesStatic;

String TTableNamesStatic::TB1 = "ww";
String TTableNamesStatic::TB2 = "ww";

使用的时候 下面2中方式都可以
Caption = TTableNames::TB1;
Caption = tableNames.TB1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: