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)
正如你所看到的,这个类没有指针作为非静态 数据成员,所以我想我可以使用默认的析构函数; 这准确吗?
在MS Visual studio中,我可以创建自己的项目,然后将其另存为自定义模板以供下次使用.有人知道如何在代码块中执行此操作吗?
我正在使用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)
"打开"然后恢复矩阵服务的目的是什么?
我想使用SDL来处理我的事件,但我正在使用OpenGL来处理图形.有没有办法使用SDL的事件处理,即使我实际上没有任何活动的SDL窗口?
在这段代码中:
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这意味着当它被重新分配texData并texCoords指向垃圾数据时.
有没有办法使它在重新分配时向量不会调用析构函数?
我一直在试图编写使用三角函数的程序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)
为什么这段代码显示错误的数字?