问一个关于类对象的选择题。该如何解决
问一个关于类对象的选择题。。...
例如 我的程序使用了lua,来获取外部传递进来的参数之类的。。
lua_函数1()
lua_函数2()
lua_函数3()
lua_函数4()
lua_函数N()
这些lua函数的话,需要调用一个类里面的成员函数之类的
那么我是直接声明一个全局的类对象好,
还是在每个lua函数里声明一个局部的类对象好呢。
另外还有一小问题,就是关于在类对象里面声明了Vector容器 变量 的时候,
在声明一个类的时候,会自动为那个容器分配空间之类的吗?
这个问题我有点儿疑惑,因为我之前将一个 vector 变量在类里面声明后,使用了,导致程序崩溃,
我 就又将那个 vector容器声明为全局的就好了。
------解决方案--------------------
看需要吧。
直接声明一个全局的类对象,这个对象会一直占用内存,直到析构删除。但函数的执行效率会更高。
在每个lua函数里声明一个局部的类对象,函数执行完毕,对象就释放,节约内存,但函数的执行效率会比较低。
如果这个对象很占内存,建议用第二种,如果对象占内存低,可以用第一种。
按照你说的函数应该是通用的,其实直接把函数定义为静态成员更好,直接调用,不用创建对象。
------解决方案--------------------
“在类对象里面声明了Vector容器 变量 的时候,
在声明一个类的时候,会自动为那个容器分配空间之类的吗?”
楼主说的不清楚!你是想问“类里有Vector数据成员,而在构造函数里又没有为该Vector成员调用任何方法,则定义一个类对象时,该成员是否会初始化吗?”吧?
如果是这个意思,答案是肯定的,因为类A里的数据成员如果是类B的对象b,而A的构造函数里没有显式对b初始化,则会调用B的默认构造函数。
例如 我的程序使用了lua,来获取外部传递进来的参数之类的。。
lua_函数1()
lua_函数2()
lua_函数3()
lua_函数4()
lua_函数N()
这些lua函数的话,需要调用一个类里面的成员函数之类的
那么我是直接声明一个全局的类对象好,
还是在每个lua函数里声明一个局部的类对象好呢。
另外还有一小问题,就是关于在类对象里面声明了Vector容器 变量 的时候,
在声明一个类的时候,会自动为那个容器分配空间之类的吗?
这个问题我有点儿疑惑,因为我之前将一个 vector 变量在类里面声明后,使用了,导致程序崩溃,
我 就又将那个 vector容器声明为全局的就好了。
------解决方案--------------------
看需要吧。
直接声明一个全局的类对象,这个对象会一直占用内存,直到析构删除。但函数的执行效率会更高。
在每个lua函数里声明一个局部的类对象,函数执行完毕,对象就释放,节约内存,但函数的执行效率会比较低。
如果这个对象很占内存,建议用第二种,如果对象占内存低,可以用第一种。
按照你说的函数应该是通用的,其实直接把函数定义为静态成员更好,直接调用,不用创建对象。
------解决方案--------------------
“在类对象里面声明了Vector容器 变量 的时候,
在声明一个类的时候,会自动为那个容器分配空间之类的吗?”
楼主说的不清楚!你是想问“类里有Vector数据成员,而在构造函数里又没有为该Vector成员调用任何方法,则定义一个类对象时,该成员是否会初始化吗?”吧?
如果是这个意思,答案是肯定的,因为类A里的数据成员如果是类B的对象b,而A的构造函数里没有显式对b初始化,则会调用B的默认构造函数。