小编Mat*_*att的帖子

将C++库放在全局命名空间之外

所以我正在构建一个基于其他库的c ++ 11库,比如opengl,SDL2,assimp,glm等......唯一的问题是大多数这些库将它们的函数或对象放在全局命名空间中:这可能会发生冲突和我的课!(例如,assimp向量和我的Vector类...)所以我想把库放在命名空间中,而不是让它们"污染"全局命名空间.

我想过这样做:

namespace some_name_space
{
   #include <some/kind/of/lib>
}
Run Code Online (Sandbox Code Playgroud)

但我意识到在全局命名空间中仍然会有一部分库!

关于如何实现这个的任何建议?

PS:我可以"包装"libs,但这不会真正被管理!

namespaces static-libraries c++11

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

接口的多重继承(抽象类)

所以我有两个抽象类; 一个定义如下:

class Bindable
{
    virtual void Bind() const = 0;
    virtual void UnBind() const = 0;
};
Run Code Online (Sandbox Code Playgroud)

另一个定义如下:

class Disposable
{
    virtual void Dispose() = 0;
}
Run Code Online (Sandbox Code Playgroud)

我让这个Component类继承自他们的虚拟方法,如下所示:

class Component : public virtual Bindable, public virtual Disposable
{
    //method implementations...
    void Bind() const;
    void UnBind() const;
    void Dispose();
}
Run Code Online (Sandbox Code Playgroud)

所以:我做得对吗?我是否需要虚拟地继承这两个抽象类?还是我错过了什么?(我还没有遇到过多重继承的情况,所以我还不习惯......)

c++

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

使用GMP整数时出现分段错误(核心转储)

我在C++中编写了一个简单的程序,使用gmp库,它打印出数字模数,其数字由1组成(如1,11,111,1111,1111,...)和2001; 问题是当程序达到23位数1时,我得到一个错误说Segmantation fault(core dumped).你能指出问题出在哪里吗?这是我的代码:

#include <iostream>
#include <stdio.h>
#include <string>
#include <gmpxx.h>

int main(int argc, char** args){

    mpz_t currNumber;
    mpz_init(currNumber);   
    mpz_set_str(currNumber, "1", 10);

    while(mpz_sizeinbase(currNumber, 10) < 24){
        char* digits =  mpz_get_str(nullptr, 10, currNumber);
        strcat(digits, "1");
        mpz_set_str(currNumber, digits, 10);
        digits = nullptr;


        mpz_t r;
        mpz_init(r);    
        mpz_set_str(r, "1", 20);

        mpz_t divisor;
        mpz_init(divisor);  
        mpz_set_str(divisor, "2001", 20);


        mpz_mmod(r, currNumber, divisor);

        std::cout << "====>" << currNumber << " mod(2001) = " << r << "\n\n\n";

        //Clean up
        mpz_clear(r);
        mpz_clear(divisor);     
    }

    std::cout << "Went until " …
Run Code Online (Sandbox Code Playgroud)

c++ gmp

-2
推荐指数
1
解决办法
547
查看次数

标签 统计

c++ ×2

c++11 ×1

gmp ×1

namespaces ×1

static-libraries ×1