如果我执行以下操作,我会对发生的情况感到有些困惑:
class a{
int i;
public:
a(){}
};
class b: public a{
};
int main(){
b b1;
}
Run Code Online (Sandbox Code Playgroud)
由于类b
没有构造函数,它使用什么构造函数?它是否使用默认构造函数a
?或者它自己的编译器生成了一个?
对于班级中的枚举......
不正确:
class MyClass{
public:
enum kHTTPMethods {GET,PUT,POST}
};
void MyClass::Func(){
kHTTPMethods method = kHTTPMethod.GET;
}
Run Code Online (Sandbox Code Playgroud)
1)我是否正确地说这不起作用,因为.
运算符只能用于类的对象(实例)?
正确:
void MyClass::Func(){
kHTTPMethods method = GET;
}
Run Code Online (Sandbox Code Playgroud)
2)我是否正确地说这是正确的,因为类的所有元素在类中变为全局范围?
我正在尝试使用 stl sort 函数根据绝对值对给定数组进行排序,但它没有按指定顺序排序:我编写的代码:
int fun(int i,int j)
{
if(abs(i)<abs(j))
return j;
else
return i;
}
int main()
{
int arr[100000];
int i,n;
cin>>n;
for(i=0;i<n;i++)
cin>>arr[i];
sort(arr,arr+n,fun);
int diff=1000000ll;
int x=0;
int y,z;
for i 0 to n
cout<<arr[i];
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有c ++代码
int main()
{
int a = 5, b=5;
bool c;
c = a == b;
cout << c << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出为1
有人请解释我如何输出1和为什么不是真的?
我是C++的新手.我正在努力学习const的概念.有人可以告诉我为什么第一个声明是非法的,而第二个是合法的?
int i = -1, &r = 0;
const int i = -1, &r = 0;
Run Code Online (Sandbox Code Playgroud) 我已经阅读了Stack Overflow和其他一些关于向文件写入向量的网站上的一些帖子.我已经实现了我认为有效的方法,但我遇到了一些麻烦.结构中的一个数据成员是类字符串,当重新读入向量时,该数据将丢失.此外,在编写第一次迭代之后,额外的迭代会导致malloc错误.如何修改下面的代码以实现将矢量保存到文件所需的能力,然后在程序再次启动时将其读回?目前,读取是在构造函数中完成的,在析构函数中写入,类的唯一数据成员是向量,但是具有操作该向量的方法.
这是我的读/写方法的要点.假设vector<element> elements
......
读:
ifstream infile;
infile.open("data.dat", ios::in | ios::binary);
infile.seekg (0, ios::end);
elements.resize(infile.tellg()/sizeof(element));
infile.seekg (0, ios::beg);
infile.read( (char *) &elements[0], elements.capacity()*sizeof(element));
infile.close();
Run Code Online (Sandbox Code Playgroud)
写:
ofstream outfile;
outfile.open("data.dat", ios::out | ios::binary | ios_base::trunc);
elements.resize(elements.size());
outfile.write( (char *) &elements[0], elements.size() * sizeof(element));
outfile.close();
Run Code Online (Sandbox Code Playgroud)
结构元素:
struct element {
int id;
string test;
int other;
};
Run Code Online (Sandbox Code Playgroud) 我有问题访问和修改我的多线程数据.有没有正确的方法来做到这一点?
这是我的完整代码:
#include <stdio.h>
#include <windows.h>
// Create thread data structure
struct data
{
int a;
float b;
char *c;
};
DWORD WINAPI threadfn(LPVOID lpParam)
{
printf("Address of thread data:\n");
for(int i=0; i<sizeof(lpParam); i++)
printf("%X\n", (int*)lpParam + i);
// Print out initial values
printf("\nInitial values:\n");
printf("a: %d\n", *((int*)lpParam));
printf("b: %.2f\n", *((float*)lpParam + 1));
printf("c: %s\n", *((int*)lpParam + 2));
// Modify thread data values
*(int*)lpParam = 200;
*((float*)lpParam + 1) = 25.80;
*((char*)lpParam + 2) = "Es la una";
return 0; …
Run Code Online (Sandbox Code Playgroud) 我正在学习c ++,并想知道这样的程序是如何组织在主存储器中的.我知道有一个堆栈(带有堆栈框架)和一个堆.我知道动态分配的东西会在堆上分配它.这是由像malloc
或的运营商完成的new
.但我不能在这个小型的c ++程序中看到它们.
该程序由一个主类和一个名为的类组成MyClass
.这堂课有:
int
)main类定义了一个Myclass对象,并定义了一个指向该对象的指针.
那么 - 这一切如何在记忆中组织起来?
#include <iostream>
using namespace std;
class MyClass {
int i;
public:
MyClass(int n) {
i = n;
}
int get_nmbr() {
return this->i;
}
};
int main() {
MyClass myClass(100), *p;
cout << myClass.get_nmbr() << endl;
p = &myClass;
cout << p;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一个文件,前几行看起来像这样:
1 436.514 0.587 8.318 1 3 8 0.929 7 0.972 2 1.440
2 436.004 0.744 7.020 1 3 10 1.117 9 1.155 1 1.440
3 436.263 0.603 5.029 2 1 9 0.916
4 437.966 0.594 6.086 2 1 9 0.835
5 434.577 1.454 5.820 2 1 10 0.898
6 433.990 1.139 7.596 2 1 10 0.919
7 437.917 0.102 8.485 4 3 1 0.972 11 1.503 12 1.428
8 435.617 0.849 9.510 4 3 13 1.463 1 0.929 14 …
Run Code Online (Sandbox Code Playgroud) 使用C++,我有
struct Base {
virtual void stuff(/*base stuff*/);
};
struct Derived : public Base {
void stuff(/*derived stuff*/);
};
void function1(Derived& obj){
obj.stuff();
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,function1将使用Derived的do()函数.如果在function1中,我想调用Base类的do()函数呢?如果我将function1称为function1(dynamic_cast<Base*>(derived_obj_ptr))
?它会起作用
吗?
test.bin的大小为7,01,760字节.我试图在缓冲区bufferPointer中将此文件中的日期读作"短".
short * bufferPointer=NULL;
// ==> ANSWER WAS ADDING: bufferPointer = ( short*)malloc(350880); <==
FILE *fp=fopen(" test.bin","rb");
fread(bufferPointer,sizeof(short),350880 ,fp);
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
我在fread()得到Debug Assertion Failed.为什么?
MSVC2010,Windows-7-32位