相关疑难解决方法(0)

C++的隐藏功能?

当涉及到"问题线"的"隐藏特征"时,没有C++的爱吗?想我会把它扔出去.C++的一些隐藏功能是什么?

c++ hidden-features

114
推荐指数
38
解决办法
8万
查看次数

如何在C++中对受保护的方法进行单元测试?

如何在C++中对受保护的方法进行单元测试?

在Java中,我要么在与测试类相同的包中创建测试类,要么创建一个匿名子类,在我的测试类中公开我需要的方法,但这些方法在C++中都不可用.

我正在使用NUnit测试一个非托管的C++类.

c++ nunit unit-testing protected

16
推荐指数
2
解决办法
8162
查看次数

这是标准的C++代码吗?

下面简单的一段代码,用VC2008编译但g ++拒绝代码:

#include <iostream>

class myclass
{
protected:
    void print() { std::cout << "myclass::print();"; }
};

struct access : private myclass
{
    static void access_print(myclass& object)
    {
        // g++ and Comeau reject this line but not VC++
        void (myclass::*function) () = &myclass::print;

        (object.*function)();
    }
};

int main()
{
    myclass object;
    access::access_print(object);
}
Run Code Online (Sandbox Code Playgroud)

(/W4) 在VC中打开,但它没有给出任何警告.

g ++ 4.4.1给出了一个错误:

correct.cpp: In static member function ‘static void access::access_print(myclass&)’:
correct.cpp:6: error: ‘void myclass::print()’ is protected
Run Code Online (Sandbox Code Playgroud)

如果g ++是正确的,我如何访问类的受保护成员?有另一种方式吗?


@Suroot你是说我不应该传递类型的对象myclass?实际上并不重要,g ++给出了相同的错误,但VC编译代码时没有任何警告.

#include <iostream>

class …
Run Code Online (Sandbox Code Playgroud)

c++ standards standards-compliance

4
推荐指数
2
解决办法
335
查看次数