我用 C读过这个问题,我在 C# 中也有同样的问题。
通过代码说是否正确
int a;
Run Code Online (Sandbox Code Playgroud)
a在初始化之前保留四个未分配的字节?或者初始化是第一次分配字节的地方?
这段代码中是否有错误:
#include <iostream>
using namespace std;
int main()
{
std:cout << "hello" "\n";
}
Run Code Online (Sandbox Code Playgroud)
GCC检测到没有错误,但std:cout似乎没有标准.
C# 中是否有任何不是类的引用类型?以下泛型中的约束是否包括所有引用类型?
static void f<T>() where T : class
{
T t = default;
Console.WriteLine(t);
}
Run Code Online (Sandbox Code Playgroud) 此代码将放在头文件中:
template<typename TTT>
inline Permutation<TTT> operator * (const Cycle<TTT>& cy, const Permutation<TTT>& p)
{
return Permutation<TTT>(cy)*p;
}
Run Code Online (Sandbox Code Playgroud)
有inline必要避免链接器错误吗?
如果此函数不是模板并且头文件用于多个.cpp文件,inline则必须避免抱怨函数的多个定义的liker错误.似乎链接器忽略了这个模板.
与std::filesystem::resize_file在C ++中,可以改变一个文件的大小,而无需打开该文件。
C#中是否有类似的功能,允许在不打开文件的情况下更改文件的大小?
我认为将文件作为 FileStream 打开并以新大小再次保存会更慢。
操作符是否=可以为类指针重载.此示例尝试为指针'Cutie*'重载'operator =':
class Cutie
{
public:
int Krait;
Cutie() : Krait(0)
{
}
};
Cutie* operator = (Cutie* p, Cutie* q)
{
if(p == 0)
{
if(0 < Krait)
Krait--;
}
else
Krait++;
}
Run Code Online (Sandbox Code Playgroud)
上述定义有错误.我正在寻找一个计算指针分配的定义:
Cutie c;
Cutie* p = 0;
p = &c;
Run Code Online (Sandbox Code Playgroud)
现在'p - > Krait'应该是'1'.