我正在使用Code :: Blocks 8.02和mingw 5.1.6编译器.我在编译Qt项目时收到此错误:
C:\ Documents and Settings\Fuzz\Desktop\GUI\App_interface.cpp | 33 |未定义引用`vtable for AddressBook'
文件地址Book.h:
#ifndef ADDRESSBOOK_H
#define ADDRESSBOOK_H
#include <QWidget>
class QLabel;
class QLineEdit;
class QTextEdit;
class AddressBook : public QWidget
{
Q_OBJECT
public:
AddressBook(QWidget *parent = 0);
private:
QLineEdit *nameLine;
QTextEdit *addressText;
};
#endif
Run Code Online (Sandbox Code Playgroud)
文件AddressBook.cpp:
#include <QtGui>
#include "addressbook.h"
AddressBook::AddressBook(QWidget *parent)
: QWidget(parent)
{
QLabel *nameLabel = new QLabel(tr("Name:"));
nameLine = new QLineEdit;
QLabel *addressLabel = new QLabel(tr("Address:"));
addressText = new QTextEdit;
QGridLayout *mainLayout = new QGridLayout; …Run Code Online (Sandbox Code Playgroud) 我有一个同名的静态和动态库:libclsocket.a和libclsocket.so当我指定要链接到的库时,我只需输入-lclsocket作为库.我的程序符合并运行完美,但我使用的是什么库?静态库还是动态库?我想给我的朋友我的程序,我不确定我是否需要在发布中包含库.C++,codelite,pcLinuxOS 2010
我不明白为什么传递指向函数的指针不会改变传入的数据.如果函数proto看起来像这样:
void func( int *p );
Run Code Online (Sandbox Code Playgroud)
和func分配内存到p,为什么不能在函数外部使用?我以为指针是地址?
我正在尝试使指针指向2D数组指针.什么是语法以及如何访问元素?
我使用C++在SDL中编写了这个非常简单的游戏,现在我想向一些使用Windows的朋友展示它.
我使用Code :: Blocks在Ubuntu 9.10中编写了我的程序.
我想获取我的源代码并制作Windows安装程序,以便他们可以安装和播放它.
我该怎么做呢?
vector< int > vect;
int *int_ptr = new int(10);
vect.push_back( *int_ptr );
Run Code Online (Sandbox Code Playgroud)
我认为每个"新"都需要在某个时候跟"删除",但clear()方法是否清理了这个内存?
这种做同样事情的方法怎么样:
vector< int > vect;
int int_var = 10;
vect.push_back( int_var );
Run Code Online (Sandbox Code Playgroud)
根据我的理解,clear()调用变量析构函数,但本例中的vect.push_back()方法都在向量上推送一个对象,而不是指针.那么使用int指针的第一个例子需要除了clear()以外的东西来清理内存吗?
我在C++工作,我有一个#define VAL 0x00000400.当我设置一个等于define:int value = VAL的变量时; 当我运行调试器时显示变量值= 1024.有人可以解释如何变成1024吗?也许有一些链接到内存地址信息,#define信息或相关的东西.
我不知道如何为 16 位实模式编译我的 C 内核。我尝试了各种编译器,但都没有运气。我的引导加载程序只是将原始扇区从软盘(我的内核位于磁盘上的第一个扇区之后)加载到物理内存地址 1000h:0000h,然后跳转到它。如何编译我的 C 内核以在 16 位实模式下工作?
我的基本内核:
void OSmain()
{
unsigned char *videoram = (unsigned char *) 0xb8000;
videoram[0] = 65; /* character 'A' */
videoram[1] = 0x07; /* forground, background color. */
while( 0 )
{
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的编译器是 GCC、tinyCC 和 DMC。我的目标是获得一个可以跳转到开始执行的平面二进制文件。
前几天我和我的导师谈过,并问他这个问题.他告诉我,我可以选择较小的项目,但我正在开始一个国际象棋程序,我想知道Stack Overflow对这个问题的看法.我应该将所有标题包含在一个文件中,还是将它们分开?
让我们functionClass来自一个类QObject.在我的QMainWindow类的类构造函数(它还没有启动任何其他线程)中,我有以下代码:
QThread workThread;
functionClass *functionClassObj = new functionClass;
cout << functionClassObj->thread()->currentThreadId() << endl; // prints 0x16c
functionClassObj->moveToThread( &workThread );
cout << functionClassObj->thread()->currentThreadId() << endl; // prints 0x16c
Run Code Online (Sandbox Code Playgroud)
currentThreadId()如果我打电话,为什么功能打印相同的东西moveToThread()?