小编Mag*_*off的帖子

为堆栈分配的对象调用析构函数的机制是什么?

C++如何确保为堆栈分配的对象调用析构函数?当我分配动态内存时,析构函数(或指向它的指针)会发生什么,如下所示:

class MyClass {
public:

  ~MyClass()
  {
    std::cout<<"Destructor called."<<std::endl;
  }  

  MyClass()
  {
    std::cout<<"Constructor called."<<std::endl;
  }

};

....................................................................

//Limit scope for example
{
  MyClass instance;
}
Run Code Online (Sandbox Code Playgroud)

构造函数和析构函数都被调用.这里发生了什么?

c++ stack destructor

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

指针算术

有代码:

int** a = new int*[2];
a[0] = new int(1);
a[1] = new int(2);
cout << "a[0] " << a[0] << '\n';
cout << "a[1] " << a[1] << '\n';
cout << "a[2] " << a[2] << '\n';
cout << "a[0] + 1 " << a[0] + 1 << '\n';//WHY THIS ISN'T == a[1] ?
cout << "*(a + 1): " << *(a + 1) << '\n'; //WHY THIS IS == a[1] ?
cout << "a[0] - a[1] " << …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

QFile/QDataStream写入现有数据

我有一个文件,据说长度为8个字节.例如它看起来像这样:

22222222

现在,我首先阅读让我们说5个字节并更改它们.对于前者 至11111

最后,我想将它们写入ONTO EXCISTING DATA到文件中,所以我希望文件看起来像这样:

11111222

但我只得到11111,因为文件被删除了.如何禁用删除?(也许这个问题存在,但无法找到像这样的问题)

c++ qt overwrite qfile

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

Qt Creator - 如何查看设计器的代码?

我正在使用Qt Creator

我正在使用信号和槽编辑器,我想查看它生成的代码。

我怎样才能看到代码?

谢谢!

qt signals-slots qt-creator

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

需要帮助来理解C++语法

我对C++比较陌生.这是一个我无法理解的if语句.

if ((ObjPtr = NewObjPtr) != NULL)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

检查了什么是"!= NULL"?

谢谢.

c++ syntax if-statement

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

如何检测Android中的脸部和笑脸匹配?

我想知道Android上是否可以使用以下内容.

  1. 选择一张照片并检测面部并显示矩形,并检测每张脸的笑脸并显示每张脸的笑脸百分比.
  2. 从照片库中选择一张照片并显示面孔.如果您单击面部,它将搜索所有照片库并显示可能的同一个人的列表.

android face-recognition

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

科学记数法 - .NET中的错误?

是的,我知道很难相信 - .NET中的错误?但是在命令行应用程序中运行此代码:

decimal x;

x = decimal.Parse("3.E-2", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("5.72e9", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("3.E?2", NumberStyles.Float);
Console.WriteLine(x);

我在最后一次解析时遇到异常.他说:

System.FormatException : Input string was not in a correct format.

第一个和最后一个解析的值完全相同.在针对.NET 3.5和4编译的两台不同的x64机器上进行了测试.

知道发生了什么事吗?任何解决方法?

.net c# scientific-notation

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

C++到C#移植

如何将此代码(c ++)移植到c#?

template <class entity_type>
class State {
public:
    virtual void Enter(entity_type*) = 0;
    virtual void Execute(entity_type*) = 0;
    virtual void Exit(entity_type*) = 0;
    virtual ~State() { }
};
Run Code Online (Sandbox Code Playgroud)

c# c++

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

如何直接评估函数?

标题可能没有任何意义,但我真的不知道如何解释这一点.我有一个叫做多项式的一类,让说,我定义了一个名为polynome p12x+4.我想要做的是p1(5)直接计算.我不想要任何类似的东西,double calculate (polynomial)我希望能够用我的多项式计算p1(x).

我希望我的问题很明确

c++ class

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

C++奇怪的值重置

使用下面的代码时,它将Tile对象的x值设置为i,将y值设置为j.但是,如果我打印的值只有y值正确,则x值始终为4095.

码:

主要代码:

Tile * tiles = new Tile[4096,4096];
    for(int i = 0; i< 4096;i++)
    {
        for(int j = 0;j< 4096;j++)
        {
            tiles[i,j].x = i;
            tiles[i,j].y = j;
        }
    }

    for(int i = 0; i< 4096;i++)
    {
        for(int j = 0;j< 4096;j++)
        {
                cout << "X (Should be " <<i<<"): "<< tiles[i,j].x << " " << "Y (Should be " <<j<<"): "<< tiles[i,j].y << "\n";
        }
    }
Run Code Online (Sandbox Code Playgroud)

Tile.h:

#pragma once

class Tile
{
    public:
        int x, y;
};
Run Code Online (Sandbox Code Playgroud)

c++

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