小编use*_*214的帖子

课堂成员的范围

在下面的示例中,数组的大小是否v保证为2或3?

static const int i = 3;

class X {

    char v[i];
    static const int i = 2;
};
Run Code Online (Sandbox Code Playgroud)

从标准来看,

3.3.6/2在S类中使用的名称N应在其上下文中引用相同的声明,并在S的完整范围内重新评估

我认为这意味着'我'将会是2什么,重新评估的东西在这里意味着什么?

c++ class

7
推荐指数
1
解决办法
918
查看次数

在构造函数中捕获异常

以下示例留下可能的内存泄漏,因为析构函数不会针对在其构造函数运行期间处理异常的对象运行.我在哪里处理这个内存泄漏?

#include <exception>

class MyClass {

public:
       MyClass() 
       {
           c = new char[5];
           throw std::runtime_error("test");
       }

      ~MyClass ()
       {
           delete[] c;
       }

private:
    char *c;
};

int main()
{
    try 
    {
        MyClass Obj;

    } 
    catch (std::runtime_error)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling

5
推荐指数
2
解决办法
1403
查看次数

局部范围和功能范围之间的差异

一旦我认为这两个具有相同的含义,但在阅读了更多关于它之后,我仍然不清楚这些差异.局部范围有时不是指功能范围吗?什么意思只有标签有功能范围?

c++ scope

5
推荐指数
2
解决办法
8187
查看次数

何时使用extern"C"?

我知道如何使用,extern "C"但必须使用它的条件是什么?

extern "C"告诉C++编译器不要对大括号内的代码执行任何名称修改.这允许您从C++中调用C函数.

例如:

#include <string.h>

int main()
{
    char s[] = "Hello";
    char d[6];

    strcpy_s(d, s);
}
Run Code Online (Sandbox Code Playgroud)

虽然这在VC++上编译得很好.但有时这写成:

extern "C" {   
#include <string.h>  
}
Run Code Online (Sandbox Code Playgroud)

我没有看到这一点.你能举一个extern "C"必要的真实例子吗?

c++ extern-c

5
推荐指数
2
解决办法
769
查看次数

元素内的 XML 注释

在下面的 XML 中,在元素的属性上放置注释的替代方法是什么?

  <!-- I can comment here -->

  <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView_ben"

        <!-- Cannot place a comment here  -->

        android:layout_centerHorizontal="true"/>
Run Code Online (Sandbox Code Playgroud)

xml

5
推荐指数
1
解决办法
3135
查看次数

表达评价顺序

我刚刚读到,运算符的评估顺序和优先级是不同的,但在C++中是相关的概念.但我还不清楚这些有什么不同但有关系?

int x = c + a * b;    // 31
int y = (c + a) * b;  // 36
Run Code Online (Sandbox Code Playgroud)

上述陈述与评估顺序有何关系.例如,当我说(c + a)我通过改变其优先级来改变表达式的评估顺序时?

c++ evaluation operator-precedence

4
推荐指数
1
解决办法
2346
查看次数

为什么班级成员的地址与他们的对象相同?

在下列情况下,每个成员都有不同的名称或实体,为什么他们的地址相同?

struct B { int x; };
struct A { B b; };

int main()
{
    A obj;
    cout << &obj.b.x << endl;
    cout << &obj.b << endl;
    cout << &obj << endl;
}
Run Code Online (Sandbox Code Playgroud)

c++

4
推荐指数
1
解决办法
1272
查看次数

C中不支持可变长度数组C99

在Visual Studio 2005中,我正在尝试编译.c文件:

int i = 6;
int a[i];
Run Code Online (Sandbox Code Playgroud)

它不起作用,我的编译器遵循哪个标准?

c variable-length-array

4
推荐指数
1
解决办法
894
查看次数

在函数上使用typedef

在下面,我如何使用typedef语法定义我的函数?

typedef void F();

//declare my function
F f;

//error
F f { }
Run Code Online (Sandbox Code Playgroud)

c++

4
推荐指数
1
解决办法
153
查看次数

指针有大小吗?

在C++中,当使用指向多维数组的指针时,

int arr[2][5];
int (*p)[5] = arr;
Run Code Online (Sandbox Code Playgroud)

a如何int*与大小不同int (*)[5]

c++ size pointers

3
推荐指数
1
解决办法
418
查看次数