我正在使用C++,我需要知道标量值(例如a double)是否"已定义".如果需要,我还需要能够"取消"它:
class Foo {
public:
double get_bar();
private:
double bar;
void calculate_bar() {
bar = something();
}
};
double Foo::get_bar() {
if ( undefined(bar) )
calculate_bar();
return bar;
}
Run Code Online (Sandbox Code Playgroud)
在C++中有可能吗?
谢谢
如果用户按 Enter 键而不输入任何浮点值,我需要程序退出 while 循环。
printf("Enter scores\n");
float scores[10];
int n=0;
while (n < 10){
scanf("%f", &scores[n]);
n++;
if (THE USER PRESSES ENTER WITHOUT ENTERING ANYTHING)
break;
}
Run Code Online (Sandbox Code Playgroud) 因为在C++中,NULL是必不可少的.每次我有一个未初始化的变量设置为NULL,之后我想通过将它与NULL进行比较来检查是否初始化了这个变量.但是,如果变量恰好在某处分配给0,那么我无法判断它是否已经初始化.我肯定可以做一些工作来避免使用另一个包装对象来包装变量或使用标志的情况.但我正在寻找更优雅的解决方案.例如:
int b[4] = {1,2,3,0};
int a = NULL;
int i = 0;
while(true){
if(a == 0)return;
a = b[i++];
}
Run Code Online (Sandbox Code Playgroud)
所以这里它将立即进入if语句,但我想等到b的最后一个元素被分配给0