看到了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;
posted on 2015-02-10 16:11  lypzxy  阅读(530)  评论(0编辑  收藏  举报