我正在尝试了解数据类型的范围.对于非浮点数,它很容易,但是对于float和double,范围列为:
float:3.4E +/- 38(7位数)
双倍:1.7E +/- 308(15位数)
但在外行中,究竟是什么意思,我怎样才能利用这些信息呢?
如果我有:
#include <string>
std::string myString = "Hello";
Run Code Online (Sandbox Code Playgroud)
然后做任何一个:
myString = "Hello World";
Run Code Online (Sandbox Code Playgroud)
要么
myString+= " World";
Run Code Online (Sandbox Code Playgroud)
我是否有写一些其他记忆的风险?
我是否必须使用字符串函数来添加或更改字符串的大小?
当程序关闭时,分配的新内存是否总是被释放?(即使从错误/错误等意外关闭,或自定义关闭功能)?
或者它是否仅在从main返回时释放内存?
我使用 CreateDC / BitBlt / GetDIBits 等来捕获屏幕,但没有捕获光标。是否有一些简单的论点或其他内容可以包括在内?
例如,在这两个代码中,一个不需要指针,另一个不需要.为什么是这样?如果myObject1不是指针,那究竟是什么?
class Object{
…
};
int main(){
// Create instance on the stack
Object myObject1;
// Create instance on the heap
Object *myObject2 = new Object;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
让我说我只想在我的代码中调用一个函数:func(),但是根据我给它的值,让它直接转到该函数的正确'版本'?
我知道这可能与if语句/ switch语句有关,但是它必须(低效率)检查传递了哪个值.我希望有预先编译的方法吗?
这样的事情有可能以有效的方式进行吗?
func(3)
Run Code Online (Sandbox Code Playgroud)
将执行func()的第三个版本
func[1]{
cout "One";
}
func[2]{
cout "Two";
}
func[3]{
cout "Three";
}
Run Code Online (Sandbox Code Playgroud)