小编lia*_*iaK的帖子

公共数据成员vs Getters,Setters

我目前在Qt等C++工作.我正在拥有具有私有数据成员和公共成员函数的类.我有班级中可用的数据成员的公共getter和setter.

现在我的问题是,如果我们的类中有数据成员的getter和setter,那么将这些数据成员设置为私有的重点是什么?我同意基类中的私有数据成员听起来合乎逻辑.但除此之外,拥有私人会员以及他们的吸气者和制定者对我来说似乎并不合乎逻辑.

或者我们可以将所有变量都公开,以便根本不需要getter和setter吗?拥有那些是一个好习惯吗?我知道让私有成员确保数据抽象,但让getter和setter实际上可以很容易地访问这些变量.欢迎任何关于此的指示.

c++ getter setter

70
推荐指数
7
解决办法
3万
查看次数

从Qt中的pro文件中获取值

我在Windows XP中使用Qt 4.5.我的专业文件有变量VERSION = 1.0.现在我需要读取此变量并1.0从源代码中获取其value().这样我就不必在源代码中维护另一个版本的变量了.我只是从专业文件中读取并更新它.因此,我的项目中的价值保持一致.可能吗?欢迎提出任何有关此问题的指示.

qt qmake qt4

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

哪个更好?Qt Creator或Visual Studio IDE

我目前正在为我的Qt应用程序使用Qt Creator 1.3.我知道它使用jom for make 步骤,当我们有多核处理器时更好.但除此之外,使用这两个IDE的所有优点是什么?Dis也有优势?我正在使用CL编译器来编译我的应用程序.这些IDE还有其他特定的优点和缺点吗?

ide qt qt-creator visual-studio

18
推荐指数
2
解决办法
4万
查看次数

Eclipse索引不起作用

我在Ubuntu的Eclipse 3.5.2 Galileo中使用CDT.

我的eclipse的索引器有时不起作用.我的意思是当我ctrl点击它所说的功能时Could not find symbol in index.此外,F3按钮单击导致相同的错误消息.实际上大多数地方它不起作用,并且在很少的地方工作.

我见过Eclipse的其他一些版本,在File菜单下为Indexing列出了一个菜单项.像文件 - >索引器 - >重建....但在我的文件菜单中没有索引器的这样的菜单项.

唯一的方法是使用Eclipse的其他版本还是遗漏了什么?任何关于此的指针都会有所帮助.

c++ eclipse eclipse-cdt

16
推荐指数
4
解决办法
5万
查看次数

头文件包含/转发声明

在我的C++项目中何时必须使用#include "myclass.h"头文件的includes()?我什么时候必须使用class(class CMyClass;)的前向声明?

c++ header-files forward-declaration

13
推荐指数
4
解决办法
2万
查看次数

Q_OBJECT链接器错误!

我在构建应用程序时收到以下链接器错误.

HIMyClass.obj :: error:未解析的外部符号"public:virtual struct QMetaObject const*__thiscall CHIMyClass :: metaObject(void)const"(?metaObject @ CHIMyClass @@ UBEPBUQMetaObject @@ XZ)找不到文件:HIMyClass.obj

HIMyClass.obj :: error:未解析的外部符号"public:virtual void*__thiscall CHIMyClass :: qt_metacast(char const*)"(?qt_metacast @ CHIMyClass @@ UAEPAXPBD @ Z)找不到文件:HIMyClass.obj

HIMyClass.obj :: error:未解析的外部符号"public:virtual int __thiscall CHIMyClass :: qt_metacall(enum QMetaObject :: Call,int,void**)"(?qt_metacall @ CHIMyClass @@ UAEHW4Call @ QMetaObject @@ HPAPAX @ Z)找不到档案:HIMyClass.obj

我的班级声明就像

class CHIMyClass:public QDialog
{
   Q_OBJECT

   ....

};
Run Code Online (Sandbox Code Playgroud)

当我评论Q_OBJECT时,链接器错误消失(显然我无法使用信号和插槽).我使用Qt Creator作为IDE和Qt 4.5.3.当我给Rebuild All时,肯定会调用QMake.我想,它产生的moc_*文件就是问题所在.我使用Windows XP和cl作为编译器.

这个链接器错误背后的原因可能是什么?

c++ qt qt4 linker-errors qobject

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

通过C++/Qt生成word文档(.doc/.odt)

我使用的是Qt 4.5.3和Windows XP.我需要我的应用程序来生成包含正在使用和生成的信息的文档.正在使用的信息将只是字符串(QString更具体),并且生成的信息也将是字符串和图像.

我希望文档是一个MS Word文档(.doc)或可以是一个开放文档格式(.odt)我也希望文档格式化为字体,图像,数据表格,一些背景颜色等等.

我也做了创建PDF使用的文件QTextDocument,QTextCursorQPrinter.但是当我尝试将相同的内容QTextDocument应用于odt时,我最终只得到了格式错误.

有没有办法使用任何其他使用C++的库生成此类文档?你们如何使用C++ 生成这样的文档(.odt/.doc)?有关此的任何指针,链接和示例都是受欢迎的.

c++ qt ms-word odf

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

为什么基类的大小为零?

基本上这是对这个问题跟进 ..

当我查看标准文档时,我发现了这个..

9.3类中,

类类型的完整对象和成员子对象应具有非零大小.96) ......

是的,是的..但是,

96)基类子对象不受约束.

所以,当我查看Stroustrup的FAQ时,有一个例子

void f(X* p)
    {
        void* p1 = p;
        void* p2 = &p->a;
        if (p1 == p2) cout << "nice: good optimizer";
    } 
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法理解它是如何进行优化的,以及为什么基类允许零大小

c++

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

如何摆脱"忽略C++异常规范"的警告

我最近得到了一个已被其他人实现的dll.我必须在我的应用程序中使用它.在他们类的头文件中,他们有函数声明

void func1() throw (CCustomException);
Run Code Online (Sandbox Code Playgroud)

现在,当我编译它时,我收到警告,

忽略C++异常规范,除非指示函数不是_declspec(nothrow)

我阅读了MSDN - 文档,但无法理解它.另外,我不想因为它出现而禁用警告.我想知道我做错了什么而不是禁用它.

我认为我的功能,比如 从dll myfunc()访问func1()它没有那个Exception规范列表.因此,我尝试在我的函数中使用相应的异常规范列表,

void myfunc1() throw (CCustomException);
Run Code Online (Sandbox Code Playgroud)

但我仍然收到警告.什么是警告以及如何摆脱它?我在Windows XP中使用Qt 4.5.

c++ qt warnings exception-specification

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

Qt Creator中的Visual Studio解决方案

我正在使用Qt 4.5并将Qt Creator作为IDE.我很满意.我知道我们可以.pro在Visual Studio IDE中打开文件(来自Qt Creator).但反过来怎么样?即如何在Qt Creator中打开visual studio Qt解决方案(.sln)?是否可以或我必须为项目再次创建专业文件?

还有其他Qt项目由Visual Studio IDE中的其他人创建.所以,如果我应该使用这些,我可以迁移的Visual Studio的解决方案,以Qt Creator的兼容的方式,使我可以继续使用Qt Creator的?我使用的是Windows XP.欢迎任何关于此的指示.

c++ qt qt4 qt-creator visual-studio

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