小编pur*_*rga的帖子

为模板化类创建类型别名

而不是使用

std::vector<Object> ObjectArray;
Run Code Online (Sandbox Code Playgroud)

我希望它是

MyArray<Object> ObjectArray;
Run Code Online (Sandbox Code Playgroud)

保留所有std :: vector方法.(比如push_back(),reserve(),...等)

但是,使用

typedef std::vector MyArray;
Run Code Online (Sandbox Code Playgroud)

不行.我应该使用模板吗?怎么样?

c++

9
推荐指数
3
解决办法
3251
查看次数

构造函数不适用于从std :: string继承的类

什么时候做

#include <string>

class MyString : public std::string 
{
 public:    
   MyString() {}
};
Run Code Online (Sandbox Code Playgroud)

但用法如下:

MyString s = "Happy day";
MyString s("Happy Day");
MyString s = (MyString)"Happy day";
Run Code Online (Sandbox Code Playgroud)

它们都不起作用.

似乎与构造函数/运算符声明/覆盖有关,但任何人都可以帮助指出我在哪里可以找到这些资源?

谢谢.

c++ stl

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

如何在 QtDesigner 中将小部件添加到表单中

在 qdesigner_workbench.cpp 中,如何通过代码将小部件(比如 QLabel)添加到 FormWindow 中?由于像 createWidget()...etc 这样的方法都是抽象的,我如何正确使用内部机制将 QLabel 添加到活动的 FormWindow 中?

编辑:

在 qdesigner_workbench.cpp 中,这是我目前拥有的:

QDesignerFormWindowManagerInterface* fwm = core()->formWindowManager();
QDesignerFormWindowInterface* fw = fwm->activeFormWindow();

QWidget* mw = fw->mainContainer(); 

QLabel* label = new QLabel(mw);         //can be added correctly but not in the right hierarchy
label->setText("I am a good girl.");
Run Code Online (Sandbox Code Playgroud)

mw(从 fw->mainContainer() 获得)实际上是一个 MainWindow,但是我需要的真实数据在:

mw -> children[2] (which is a QDesignerWidget) -> children
Run Code Online (Sandbox Code Playgroud)

设计器中有9个widget,你可以看到上面提到的children中有9个数组;有关说明,请参阅此链接(图像)。

http://img24.imagevenue.com/img.php?image=98871_a_122_476lo.jpg

那么...如何正确添加 QLabel 小部件?两个都试过

QLabel* label = new QLabel(fw);   // will be a sibling of MainContainer, which is …
Run Code Online (Sandbox Code Playgroud)

qt qt4

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

使用基类对象来表示其派生类对象

我需要一种方法让单个变量表示从同一基类派生的两种对象.

这有点难以描述,但我会尽力而为:

说基类:

class Rectangle
{
   float w;
   float h;
   const float area() {return w*h;}
};
Run Code Online (Sandbox Code Playgroud)

以及两个派生类:

class Poker : Rectangle
{
    int style;  // Diamond, Club, ....
    int point;  // A~10, J, Q, K
};

class BusinessCard : Rectangle
{
    string name;
    string address;
    string phone;
};
Run Code Online (Sandbox Code Playgroud)

现在可以声明一个对象,可以是扑克牌还是名片?

'因为下面的用法是非法的:

Rectangle* rec;
rec = new Poker();
delete rec;
rec = new BusinessCard();
Run Code Online (Sandbox Code Playgroud)

多态可能是一种方式,但由于它只对改变基类的成员属性有好处,我需要这个对象能够准确地表示任何一个派生对象.

编辑:

谢谢你的所有答案.公共继承,虚拟析构函数甚至boost :: variant typedef都是很棒的提示.

c++

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

如何在python中迭代时更改容器中的数据

给出以下示例:

container = [ (1, "a") , 
              (40, "b") ,
              (24, "c") ,  #we intend to change this
              (103, "d")
            ]

for k,v in container:
    if k == 24:
        v += " good"

print container
Run Code Online (Sandbox Code Playgroud)

容器中(24,"c")数据对仍将保持其原始值,并且不会更改为(24,"c good").在迭代期间将其改为(24,"c good")的方法是什么?

我使用python 2.7,但也欢迎使用3.x示例.

谢谢.

python

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

从固定内存偏移量获取值:Visual C++编程

我想编写一个简单的应用程序,能够从另一个进程(应用程序)的已分配内存中检索某些特定数据.

假设我已经知道一个进程'id并且我想在这个进程中获得一个值'内存总是来自一个固定的偏移量(如0x523F1C),这在用户模式下是可行的,还是必须在内核模式下?

任何提示或信息都非常感谢.

我的环境是Windows XP,我使用Visual C++和Qt进行GUI.

提前致谢 :)

编辑:

(a)谢谢你们.基本上它正在工作(当设置一个断点并挂钩它正确的值),但是当做正常的释放构建时,获得的值总是初始化:(

必须更加努力才能弄明白......

(b)由于我试图获取价值的应用程序不是由我编写的,我还可以进行进程间通信/共享内存技术吗?

编辑2:

再次感谢您的快速反应!:d

c++ visual-c++

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

传输SVN属性

看起来SVN属性存储在本地工作副本文件夹中,而不是存储在服务器上.

如果这是正确的,如何将已在工作副本文件夹下的不同文件中定义的这些属性复制到另一台计算机?

唯一需要转移的属性是svn:ignore.

svn

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

标签 统计

c++ ×4

python ×1

qt ×1

qt4 ×1

stl ×1

svn ×1

visual-c++ ×1