我不习惯c ++而且我在编写构造函数时遇到了问题.
看到这个例子,是我正在处理的代码的简短版本:
class B {
public:
B(int x);
}
class A {
public:
B b;
A(){
// here I have to initialize b
}
}
Run Code Online (Sandbox Code Playgroud)
抛出编译器错误,因为我需要在A的构造函数中初始化b,因为B没有默认构造函数.
我想我已经在初始化列表中做了,但是B(int x)参数是我必须用某种算法计算的值,所以我不知道应该如何正确完成,或者如果我遗漏了某些东西或做错了.
在像java这样的其他语言中,我会引用B并在A的构造函数中初始化它之后需要获取初始化值的其他代码.
在这种情况下,初始化b的正确方法是什么?
谢谢!
我无法在任何地方找到这个问题的答案.
如何在C++中将字符串从UTF-8转换为ANSI(扩展ASCII)?
GWT可以仅用于简单的AJAX吗?我不想要小部件,我只是想避免编码javascipt.我需要的是简单的ajax,比如单击链接并使用从服务器检索的数据更新div的内容,或类似的东西.GWT可以用于那个purpouse吗?如果是的话,我在哪里可以得到一些帮助?我在网上找到的所有内容都是基于小部件.
我有2个班:
class Entity {
void addChild(Entity* e);
};
class Control : public Entity {
};
Run Code Online (Sandbox Code Playgroud)
我想要做的是不允许将Control添加为非Control的子项.所以,例如:
Control c;
Entity e;
e.addChild(c); // This line would throw an error (at compile time if possible);
Run Code Online (Sandbox Code Playgroud)
我想到的第一件事是将它添加到Entity:
void addChild(Control* c){
assert(false);
};
Run Code Online (Sandbox Code Playgroud)
注意:Entity和Control都是抽象类,但它们都有许多子类.
但有没有办法在编译时得到错误?
我正在用C++开发一个mac应用程序,我遇到了以下问题:
words(26222,0xa0b5c540) malloc: *** error for object 0x88dda04:
incorrect checksum for freed object - object was probably modified after
being freed.
*** set a breakpoint in malloc_error_break to debug
Run Code Online (Sandbox Code Playgroud)
无论如何,我在malloc_error_break中设置了一个断点,但它并没有告诉我在哪里修改内存.
是否有任何内存调试器可以提供有关我在哪里弄乱内存的有意义的信息?