小编Gtr*_*rex的帖子

在C++纯虚函数上应用"using"关键字

B类覆盖了A类的纯虚函数"print()".C类继承了B类,并且具有"使用A :: print"语句.既然C类不是抽象类呢?

class A {
    public :
        virtual void print() =0;
};

class B:public A {
    public:
        void print();
};

void B :: print() {

    cout << "\nClass B print ()";
}

class C : public B {

    public:
        using A::print;
};

void funca (A *a) {

    // a->print(1);                    
}

void funcb (B *b) {

    b->print();         
}

void funcc (C *c) {

    c->print();             
}

int main() {
    B b;
    C c;        
    funca(&c);              
    funcb(&c);              
    funcc(&c);              
    return 0;               
}
Run Code Online (Sandbox Code Playgroud)

输出:

    Class …
Run Code Online (Sandbox Code Playgroud)

c++ overriding virtual-functions using-declaration

15
推荐指数
2
解决办法
614
查看次数

原子&lt;int&gt;和int之间的区别

我想知道我们是否只是进行加载和存储之间是否有任何std::atomic<int>不同int。我不关心内存顺序。例如考虑下面的代码

int x{1};

void f(int myid) {

    while(1){
        while(x!= myid){}
        //cout<<"thread : "<< myid<<"\n";
        //this_thread::sleep_for(std::chrono::duration(3s));
        x = (x % 3) + 1;
    }
}

int main(){

    thread x[3];
    for(int i=0;i<3;i++){

        x[i] = thread(f,i+1);
    }

    for(int i=0;i<3;i++){

        x[i].join();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在输出(如果取消注释 cout)将是

线程:1

螺纹数:2

螺纹数:3

...

int x我想知道更改为有什么好处吗atomic<int> x

c++ c++11 stdatomic

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