小编Ton*_*roy的帖子

一些简单的构造函数代码的解释

如果我执行以下操作,我会对发生的情况感到有些困惑:

class a{
  int i;
public:
  a(){}
};

class b: public a{
};

int main(){
  b  b1;
}
Run Code Online (Sandbox Code Playgroud)

由于类b没有构造函数,它使用什么构造函数?它是否使用默认构造函数a?或者它自己的编译器生成了一个?

c++ constructor class

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

类成员函数中的C++枚举

对于班级中的枚举......

不正确:

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)我是否正确地说这是正确的,因为类的所有元素在类中变为全局范围?

c++ enums

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

使用stl c ++对数字使用绝对值进行排序

我正在尝试使用 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++ sorting stl absolute-value

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

C++中的布尔流输出表示

我有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++ iostream boolean

2
推荐指数
2
解决办法
337
查看次数

为什么int&r = 0是非法的而const int&r = 0是合法的?

我是C++的新手.我正在努力学习const的概念.有人可以告诉我为什么第一个声明是非法的,而第二个是合法的?

int i = -1, &r = 0;         

const int i = -1, &r = 0;  
Run Code Online (Sandbox Code Playgroud)

c++ pointers const reference

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

读取和写入结构的向量到文件

我已经阅读了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)

c++ fstream vector

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

在c ++中访问和修改线程数据问题

我有问题访问和修改我的多线程数据.有没有正确的方法来做到这一点?

这是我的完整代码:

#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++ windows multithreading

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

在内存中组织c ++程序 - 堆栈和堆

我正在学习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)

c++ memory heap stack

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

从C++文件中读取不同类型的数字数据

我有一个文件,前几行看起来像这样:

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++ boost c++11

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

如何调用基类的虚函数,该函数是函数的输入参数

使用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))?它会起作用 吗?

c++ inheritance virtual-functions

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

调试断言在fread()失败

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位

c

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