小编ctn*_*ctn的帖子

为什么使用虚拟基类会更改复制构造函数的行为

在以下程序中,a当B虚拟地从A派生并且C(不是B)的实例被复制时,不复制成员变量.

#include <stdio.h>

class A {
public:
    A() { a = 0; printf("A()\n"); }

    int a;
};

class B : virtual public A {
};

class C : public B {
public:
    C() {}
    C(const C &from) : B(from) {}
};

template<typename T>
void
test() {
    T t1;
    t1.a = 3;
    printf("pre-copy\n");
    T t2(t1);
    printf("post-copy\n");
    printf("t1.a=%d\n", t1.a);
    printf("t2.a=%d\n", t2.a);
}

int
main() {
    printf("B:\n");
    test<B>();

    printf("\n");

    printf("C:\n");
    test<C>();
}
Run Code Online (Sandbox Code Playgroud)

输出:

B:
A()
pre-copy
post-copy
t1.a=3
t2.a=3

C:
A() …
Run Code Online (Sandbox Code Playgroud)

c++

19
推荐指数
4
解决办法
1914
查看次数

使用xcodebuild分离构建目录

xcodebuild读取的手册页:

从包含项目的目录(即包含projectname.xcodeproj包的目录)运行xcodebuild.

我想保持我的源目录(这是一个Subversion外部)干净且未修改,并将我的目标文件和可执行文件构建到完全位于源目录之外的位置.

是否有任何方法xcodebuild可以使用make工具甚至msbuildWindows上的方式从终端构建单独的构建目录?

macos xcodebuild

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

如何在C中使用灵活数组来保留多个值?

我有以下代码:

typedef struct
{
   int name;
   int info[1]; 
} Data;
Run Code Online (Sandbox Code Playgroud)

那么我有五个变量:

int a, b, c, d, e;
Run Code Online (Sandbox Code Playgroud)

我如何使用它作为一个灵活的数组来保存五个变量的所有值?

c arrays

0
推荐指数
1
解决办法
937
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

macos ×1

xcodebuild ×1