小编0ct*_*gon的帖子

我什么时候需要声明自己的析构函数?

class Point    
{
public:
    float x,y;
    Point() {}
    Point(float,float);
    Point operator + (Point);
    Point operator * (double);
    void rotate_p(float);
    void render_p(Point*);
    void sub(float);
    float get_dist();//get_distance
};
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这个类没有指针作为非静态 数据成员,所以我想我可以使用默认的析构函数; 这准确吗?


  • 我什么时候需要声明自己的析构函数?

c++ destructor class

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

如何在Code :: blocks中使用自定义项目模板

在MS Visual studio中,我可以创建自己的项目,然后将其另存为自定义模板以供下次使用.有人知道如何在代码块中执行此操作吗?

c++ codeblocks

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

与OpenGL中的martix堆栈混淆?

我正在使用Lazy Foo的教程.我发现glPushMatrix()和glPopMatrix()函数非常混乱.我需要有人来解释如何存储矩阵,如何激活其中一个(如果这就是你所说的)以及来自Lazy Foo网站的代码:

void render() 
{ 
//Clear color buffer 
glClear( GL_COLOR_BUFFER_BIT ); 

//Pop default matrix onto current matrix 
glMatrixMode( GL_MODELVIEW ); 
glPopMatrix(); 

//Save default matrix again 
glPushMatrix();
Run Code Online (Sandbox Code Playgroud)

"打开"然后恢复矩阵服务的目的是什么?

c++ opengl matrix

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

没有SDL窗口的SDL_Events

我想使用SDL来处理我的事件,但我正在使用OpenGL来处理图形.有没有办法使用SDL的事件处理,即使我实际上没有任何活动的SDL窗口?

c++ opengl sdl

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

如何在不调用析构函数的情况下重新分配向量?

在这段代码中:

Texture * a = new Texture();
Texture * b = new Texture();
buttons.push_back(*a);
buttons.push_back(*b);
Run Code Online (Sandbox Code Playgroud)

buttons 是一个像这样定义的向量:

std::vector<Texture> buttons;
Run Code Online (Sandbox Code Playgroud)

纹理是一个类,这是它的原型:

class Texture
{
public:
    Picture * texData;
    HitBox * texCoords;
    Texture();
    ~Texture();
    void render_tex();
};
Run Code Online (Sandbox Code Playgroud)

第一个代码块的第4行是调用纹理a的析构函数.问题是这个析构函数删除了指向的值texData,texCoords这意味着当它被重新分配texDatatexCoords指向垃圾数据时.

有没有办法使它在重新分配时向量不会调用析构函数?

c++ destructor class vector c++11

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

trig函数返回错误的值

我一直在试图编写使用三角函数的程序cmath,sin()cos()特别.我知道这些函数使用弧度,所以我添加* pi / 180了程序仍然显示错误的数字.这是一些代码.

    #include<iostream>
    #include<cmath>
    using namespace std;

    const double pi = 3.1415926;

    int main()
    {
        int x = 0;
        double d;
        for(int forl=0;forl < 10;forl++)
        {
           d = sin(50 / pi * 180);
           cout << d << endl;
           x += 5;
        }
        cin >> x;
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

为什么这段代码显示错误的数字?

c++

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

标签 统计

c++ ×6

class ×2

destructor ×2

opengl ×2

c++11 ×1

codeblocks ×1

matrix ×1

sdl ×1

vector ×1