我尝试以下代码,但它不起作用.
[helloToolbar setBackgroundColor:[UIColor clearColor]];
Run Code Online (Sandbox Code Playgroud) 最近出现在我作为助教的课堂上.我们正在教学生如何用c ++编写复制构造函数,最初教过java的学生问你是否可以从另一个构建函数调用.我知道这个问题的答案是否定的,因为他们在课堂上使用了迂腐的旗帜作为他们的代码,而旧标准对此并不支持.我在Stackoverflow和其他网站上发现了使用new (this)如下伪造此内容的建议
class MyClass
{
private:
int * storedValue;
public:
MyClass(int initialValue = 0)
{
storedValue = new int(initialValue);
}
~ MyClass()
{
delete storedValue;
}
MyClass(const MyClass &b)
{
new (this) MyClass(*(b.storedValue));
}
int value() {
return *storedValue;
}
};
Run Code Online (Sandbox Code Playgroud)
这是非常简单的代码,显然不会通过重用构造函数来保存任何代码,但它仅仅是例如.
我的问题是,这是否符合标准,如果有任何边缘情况应该考虑,以防止这是声音代码?
编辑:我应该注意到这对我来说似乎是非常危险的,但是从我不太了解它不仅仅是知道如何变坏它的观点来看更多.我只是想确保如果学生被问到我可以指导他们为什么能够或不应该这样做.为了所有实际目的,我已经向他们建议使用共享初始化方法.这更像是一个教学问题,而不是一个实际项目.
我有一个关于何时释放NSArray元素的新手问题.请参阅以下伪代码:
NSMutalbeArray *2DArray = [[NSMutableArray alloc] initWithCapacity:10];
for (int i=0;i<10;i++) {
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
for (int j=0;j<5;j++) {
MyObject *obj = [[MyObject alloc] init];
[array addObject:obj];
[obj release];
}
[2DArray addObject:array];
[array release];
}
// use 2DArray to do something
[2DArray release]
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我发布2DArray时,我是否需要先显式释放每个元素(数组)?另外,在我发布"数组"对象之前,我是否需要首先释放它的每个元素(MyObject)?
我是Objective C的新手.请帮助.谢谢.
我想知道是否有人可以帮助我:
printf("Enter path for mount drive (/mnt/Projects) \n");
scanf("%s", &cMountDrivePath);
Run Code Online (Sandbox Code Playgroud)
是否可以允许用户仅按Enter键并接受默认值(在这种情况下为/ mnt / Projects)?目前,如果用户按下Enter键,则光标仅移至下一行,仍然需要输入。
我得到的印象scanf不允许这样做,在这种情况下,我应该使用什么?
谢谢!