- 主题:全局对象初始化问题
一个类A,构造函数唯一参数int。
请问,定义一个全局对象(不在任何类及函数内部):
A a(10);
这样可以么? 应该是分配在全局数据区。
--
FROM 61.148.243.*
为啥不试试?
【 在 anything1999 的大作中提到: 】
:
: 一个类A,构造函数唯一参数int。
: 请问,定义一个全局对象(不在任何类及函数内部):
: A a(10);
:
: 这样可以么? 应该是分配在全局数据区。
: --
:
发自「今日水木 on Mi Note 3」
--
FROM 101.199.100.*
可以
【 在 anything1999 的大作中提到: 】
: 一个类A,构造函数唯一参数int。
: 请问,定义一个全局对象(不在任何类及函数内部):
: A a(10);
: ...................
--
FROM 221.239.27.*
【 在 anything1999 的大作中提到: 】
: 一个类A,构造函数唯一参数int。
: 请问,定义一个全局对象(不在任何类及函数内部):
: A a(10);
: ...................
可以,在全局区,而且是在main()之前进行。
如果构造函数有BUG,可以让程序在启动main之前死掉。
如果大量全局对象,调试会有困难。
--
修改:ylh1969 FROM 221.221.54.*
FROM 221.221.54.*
谢谢,这么做主要是想定义一个常量,比如三维空间的原点:
Vector3d ORIGIN(0, 0, 0);
程序中其它地方都能访问。应该没有必要用new来创建一个。应该也没有必要用static来修饰。
【 在 ylh1969 的大作中提到: 】
: 可以,在全局区,而且是在main()之前进行。
: 如果构造函数有BUG,可以让程序在启动main之前死掉。
: 如果大量全局对象,调试会有困难。
--
FROM 61.148.243.*
【 在 anything1999 的大作中提到: 】
: 谢谢,这么做主要是想定义一个常量,比如三维空间的原点:
: Vector3d ORIGIN(0, 0, 0);
: 程序中其它地方都能访问。应该没有必要用new来创建一个。应该也没有必要用static来修饰。
: ...................
大量的全局对象,我一般是用全局指针。在main里new。
--
FROM 221.221.54.*
用指针更好?用的时候还得在前面加*, 不简洁啊。
【 在 ylh1969 的大作中提到: 】
: 大量的全局对象,我一般是用全局指针。在main里new。
--
FROM 114.249.199.*
【 在 anything1999 的大作中提到: 】
: 用指针更好?用的时候还得在前面加*, 不简洁啊。
:
不是,是->。
--
FROM 221.221.54.*
我是说要new出来的话,全局变量就是一个指针,然后访问那个全局变量的时候,得需要*ORIGIN这么写吧。
假如我重载了运算符+, ORIGIN + v1;, 如果是new出来的,我得这么写吧:
*ORIGIN + v1
【 在 ylh1969 的大作中提到: 】
: 不是,是->。
--
FROM 114.249.199.*
【 在 anything1999 的大作中提到: 】
: 我是说要new出来的话,全局变量就是一个指针,然后访问那个全局变量的时候,得需要*ORIGIN这么写吧。
: 假如我重载了运算符+, ORIGIN + v1;, 如果是new出来的,我得这么写吧:
: *ORIGIN + v1
: ...................
你试试吧。
--
FROM 221.221.54.*