我这里有一些C++代码:
class demo
{
private:
unsigned char len, *dat;
public:
demo(unsigned char le = 5, unsigned char default) : len(le)
{
dat = new char[len];
for (int i = 0; i <= le; i++)
dat[i] = default;
}
void ~demo(void)
{
delete [] *dat;
}
};
class newdemo : public demo
{
private:
int *dat1;
public:
newdemo(void) : demo(0, 0)
{
*dat1 = 0;
return 0;
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题是,有什么: len(le)和: demo(0, 0)被称为?
它与继承有关吗?
我想知道是否有人知道我的 makefile 中的独立 @ 符号和 'dir' 命令在这里的作用(第二行和第三行):
$(BUILD)/%.o: %.cpp
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $? -o $@
Run Code Online (Sandbox Code Playgroud)
我明白 $@ 是什么,但是 @ 本身并没有在 GNU 手册(https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html)中列出,并且我所有的搜索都讨论了 $ @。
此外,在第三行中,我知道 mkdir -p 创建嵌套目录,但我希望有人可以详细说明 $(dir $@) 特别是“dir”部分。
感谢您的时间。
我是新来的C++,并想知道如果有之间的差异uint32_t和tUInt32?它只是语法糖吗?或者它只是结果using namespace std;?
我知道它们代表什么(参见:https://www.badprog.com/c-type-what-are-uint8-t-uint16-t-uint32-t-and-uint64-t).我很困惑为什么有两种不同的方式来表示它们以及使用哪种方法.
虽然我已搜查所以用uint32_t和tUInt32,我希望这不是一个重复.
感谢您的时间.