E*****7 发帖数: 128 | 1 We want to do the followings [both (1) AND (2)]: |
p**s 发帖数: 2707 | 2 你想说什么?
BTW, 程序有bug
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
E*****7 发帖数: 128 | 3 Bug问题没有太考虑,比如:可以用auto_ptr()之类的。愿闻其详。 |
f*****Q 发帖数: 1912 | 4 何必呢?
i
i
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
E*V 发帖数: 17544 | 5 ding
i
i
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
t****t 发帖数: 6806 | 6 还没完哪?
你贴的东西又不对, 贴出来干嘛? 如果不能确定对不对, 请勿使用确定的口气, 以免误
导他人
i
i
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
t****t 发帖数: 6806 | 7 BTW, if you really want to make friends with c++ programming, you'd better
improve your c++ programming first, and most important, LEARN TO READ POSTS
and LEARN TO LEARN FROM POSTS
i
i
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
w***g 发帖数: 5958 | 8 C++程序不是这么写的。正确的写法是
vector p(10);
fill(p.begin(), p.end(), 5);
i
i
【在 E*****7 的大作中提到】 : We want to do the followings [both (1) AND (2)]:
|
E*V 发帖数: 17544 | 9 难度我顶错了?我是不看贴就定的
【在 t****t 的大作中提到】 : 还没完哪? : 你贴的东西又不对, 贴出来干嘛? 如果不能确定对不对, 请勿使用确定的口气, 以免误 : 导他人 : : i : i
|
E*****7 发帖数: 128 | 10 谢谢大家。其实,只是奔个小代码。有很多的问题:内存分配失败Exception Handle如
何处理?A Class中var i变量谁也不会用public, createArray()要给i变量附值它必须
是A类的friend等等,问题太多了。又JJWW烦人了。 |
|
|
t****t 发帖数: 6806 | 11 作为伪代码, 你提的这些毛病都不是什么大问题
但是你作为核心的operator new[], 根本就是错的
首先, operator new[]不是必须的
其次, operator new[](size_t)里那个size_t, 就是需要分配的内存数, 不需要再*
sizeof(A)
【在 E*****7 的大作中提到】 : 谢谢大家。其实,只是奔个小代码。有很多的问题:内存分配失败Exception Handle如 : 何处理?A Class中var i变量谁也不会用public, createArray()要给i变量附值它必须 : 是A类的friend等等,问题太多了。又JJWW烦人了。
|
E*****7 发帖数: 128 | 12 谢谢!void *ptr = (void *)malloc(sz= (sizeof(A) * sz) )你看该怎么写?
另外,依你看该怎么解决这个问题? |
c*****t 发帖数: 1879 | 13 #include
using namespace std;
class A
{
private:
int m_value;
public:
A (int v) : m_value (v) { std::cout << "ctor" << std::endl; }
~A () { std::cout << "dtor" << std::endl; }
int getValue () { return m_value; }
};
#define SIZE 10
int main ()
{
// init
A* array = (A*)new char[sizeof (A) * SIZE];
for (int i = 0; i < SIZE; ++i)
new (&array[i]) A (5);
for (int i = 0; i < SIZE; ++i)
std::cout <
【在 E*****7 的大作中提到】 : 谢谢!void *ptr = (void *)malloc(sz= (sizeof(A) * sz) )你看该怎么写? : 另外,依你看该怎么解决这个问题?
|
t****t 发帖数: 6806 | 14 你这不是让他更糊涂了吗?
本来C++就应该用vector, 除非object not Assignable or CopyConstructable
【在 c*****t 的大作中提到】 : #include : using namespace std; : class A : { : private: : int m_value; : public: : A (int v) : m_value (v) { std::cout << "ctor" << std::endl; } : ~A () { std::cout << "dtor" << std::endl; } : int getValue () { return m_value; }
|
t****t 发帖数: 6806 | |