假设我有:
class A {
public:
const int x;
A() : x(3) {}
}
Run Code Online (Sandbox Code Playgroud)
我想创造
std::vector<A>
Run Code Online (Sandbox Code Playgroud)
g ++抱怨默认赋值运算符在尝试执行时不起作用this->x = x,因为xconst是无法完成的.有没有办法解决?
我想要做的是将字符串转换为 const char*。
\n\n理想情况下,我可以只使用“const char* myConstChar = myString.c_str()”,但如下面的示例所示;它不适用于二进制数据:
\n\n#include <iostream>\n#include <fstream>\n#include <stdio.h>\n#include <string.h>\n\nusing namespace std;\n\nint main(){\n string myString; // This need to be string\n ifstream infile;\nconst char* myConstChar; // This need to be const char*\n\ninfile.open("binary.bin");\n\nif(infile){\n while(getline(infile, myString)){ \n std::cout << "Data: " << myString << " string length: "; \n std::cout << myString.length() << "\\n";\n myConstChar = myString.c_str();\n std::cout << "const char Data: " << myConstChar; \n std::cout << " const char length: "<< strlen(myConstChar) <<"\\n";\n }\n }\n\n …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
int i = 0, j = 0;
for(i=0,j=0;i<5,j<25;i++,j++);
cout<<i <<" "<<j;
Run Code Online (Sandbox Code Playgroud)
我不知道它为什么输出25 25.我真的不明白为什么它的价值25 i和j.任何人都可以解释一下为什么它从第二个条件达到25的价值?这是在一个for循环中检查两个条件的问题吗?
这是如何实现的:vector <vector <T> > a;
每个向量都包含一个底层数组,但要有一个数组需要一个常量,但vector(它是外向量的数据类型)具有可变大小.如果它是由指针实现的,那么c ++知道何时使用指针以及何时使用直接值.
class Blades
{
public:
Blades(int test):speed(test){}
void Blades_draw()
{
al_draw_filled_circle(100, 100, 5, al_map_rgb(26, 116, 217));
}
private:
int speed;
};
Run Code Online (Sandbox Code Playgroud)
我已经创建了许多与此类似的类,我有一个main.cpp,其中所有内容都已实现.所有其他类都工作正常,即使它如此简单,这个问题也是有问题的.该类没有完成,并且元素是出于测试原因.但是当我尝试在main.cpp中声明一个变量时,如下所示
Blades blade(50);
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它很奇怪,在我还在输入它的状态下Blades blade(,没有任何东西出现,而其他类有智能感知.当我确实放一个值并用括号括起来时,它不会抱怨.但是当我稍后尝试访问该类以获取某些元素时blade.Blades_draw();,当我到达点部分时,它并没有给我建议,并且红色弯曲的下划线显示说刀片未定义.我的头脑即将爆炸,我需要在学校之前完成这个项目.