小编use*_*214的帖子

什么是顶级const限定符?

是什么const在"顶级"预选赛中,C平均++?

还有什么其他水平?

例如:

int const *i;
int *const i;
int const *const i;
Run Code Online (Sandbox Code Playgroud)

c++ const

46
推荐指数
4
解决办法
9028
查看次数

Reinterpret_cast与C风格演员

我听说这reinterpret_cast是实现定义,但我不知道这是什么意思.你能提供一个如何出错的例子,它出错了,使用C-Style演员会更好吗?

c++ casting

32
推荐指数
4
解决办法
3万
查看次数

左右移位负整数是否定义了行为?

我知道,正确移位负签名类型取决于实现,但是如果我执行左移怎么办?例如:

int i = -1;
i << 1;
Run Code Online (Sandbox Code Playgroud)

这个定义明确吗?

我认为该标准没有说明带有签名类型的负值

如果E1具有带符号类型和非负值,并且E1×2 E2在结果类型中可表示,那么这就是结果值; 否则,行为未定义.

它只阐明如果结果在签名类型中无法表示,则行为未定义.

c++ bit-shift undefined-behavior

17
推荐指数
2
解决办法
1万
查看次数

int到float转换会产生警告吗?

这是令人惊讶,我看到,即使值可以转换,一个int浮动转换始终给予警告.为什么是这样?

int i = 0;
float f = 0; // warning here

// I thought this was an implicit conversion,
// meaning it is convertible with no warnings.
f = i;      // another warning here
Run Code Online (Sandbox Code Playgroud)

警告是:

warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
Run Code Online (Sandbox Code Playgroud)

c++ implicit-conversion

12
推荐指数
2
解决办法
2万
查看次数

C和C++中的翻译单元

C++和C中的翻译单元之间有区别吗?

在其他帖子中,我读到标题和源文件构成了一个翻译单元,但是单独的源文件可以在C++中被称为翻译单元,其中它包含一个文件中的所有定义吗?

c c++

12
推荐指数
1
解决办法
6849
查看次数

功能上的模板模板参数

这是C++模板中的有效模板构造吗?

template < template <typename T2> class T> 
void foo() {

}
Run Code Online (Sandbox Code Playgroud)

c++ templates

11
推荐指数
1
解决办法
2333
查看次数

什么是动态类型的对象

我认为动态类型意味着动态分配对象使用new.在下面的例子中,您是否p指出动态类型或静态类型的对象?在标准中,它没有说动态类型是动态对象.

1.3.3 - 由左值表达式表示的左值所指的最派生对象(1.8)的类型.[示例:如果指针(8.3.1)p的静态类型是"指向B类的指针"指向D类的对象,从B派生(第10节),则表达式*p的动态类型为"D" ".参考文献(8.3.2)的处理方式相似.]

以下引用的含义是什么呢?

rvalue表达式的动态类型是其静态类型

class Base {
    virtual void foo(){}
};

class Derived : public Base {
    void foo(){}
};

int main()
{
    Derived d;
    Base *p = &d;
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance pointers lvalue subobject

10
推荐指数
3
解决办法
5258
查看次数

sizeof操作数得到评估?

AFAIK sizeof不会将其操作数评估为C++.

例如

int x = 0;
sizeof(x += 1); // value of x is not changed
Run Code Online (Sandbox Code Playgroud)

但是,这是什么意思?

int arr[5];
sizeof(arr+0); // here array is converted to pointer
Run Code Online (Sandbox Code Playgroud)

为什么在这里应用数组算术?

(第5.3.3/4节)左值到右值(4.1),数组到指针(4.2)和函数到指针(4.3)标准转换不应用于sizeof的操作数.

c++

10
推荐指数
2
解决办法
669
查看次数

在范围范围内没有联系?

块中声明的所有变量都没有"无连接"吗?

例如:

1:

如果我声明一个静态变量:

void foo()
{
   static int i;
}
Run Code Online (Sandbox Code Playgroud)

它会有内部联系还是没有联系?如果没有联动,那为什么要让它静止?

2:

如果我使用extern会发生什么?

/*global scope*/
static int i;

void foo()
{
    extern int i;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,将是什么联系i

c++ static extern linkage

10
推荐指数
1
解决办法
474
查看次数

术语"词汇"在C++中意味着什么?

我读到有词法常量,词汇运算符,词汇范围等.术语"词汇"如何改变常量,例如字符串文字,任何运算符或某个标识符范围的含义?

c++

8
推荐指数
2
解决办法
1510
查看次数