小编nit*_*ian的帖子

如何通过GCC显示C++类的VTABLE?

我知道如果一个类VTABLE包含至少一个虚函数,那么它将有一个.我想看看的内容VTABLE.有没有办法显示它?

具体来说,是否有一个选项gcc来显示VTABLE一个类?

c++ gcc virtual-functions vtable

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

在Linux 2.6内核中需要thread_info结构吗?

在Linux 2.6内核之前,struct task_struct存在于每个进程的内核堆栈的末尾.没有thread_info struct概念.但是在Linux 2.6内核中,不是task_struct放在进程内核堆栈的末尾,而是thread_info struct放在最后.此thread_info结构包含指向结构的指针task_struct.

thread_info结构的引入需要什么?我们可以task_struct使用stack pointer直接访问结构,如果task_struct放在进程的内核堆栈的末尾.

在2.6内核中,task_struct使用动态分配slab_allocator.在2.6内核之前,它是静态分配的吗?

process linux-kernel

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

在目标PowerPC机器上安装Valgrind

我有最新的Valgrind源代码.我想Valgrind在目标机器(powerpc)上安装,它不支持构建任何软件.所以我需要Valgrind在我的构建机器(x86)上交叉编译powerpc机器.现在我的问题是how to install the cross compiled Valgrind我的目标机器?

install valgrind cross-compiling

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

虚拟函数本质上应该有一个定义吗?

是否必须为虚函数定义?

请考虑以下示例程序:

#include <iostream>

using namespace std;

class base
{
   public:
      void virtual virtualfunc();
};

class derived : public base
{
   public:
   void virtualfunc()
   {
      cout << "vf in derived class\n";
   }
};

int main()
{
   derived d;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给出了链接错误:

在function base::base():: undefined引用中vtable for base

我没有基类中虚函数的定义.为什么即使我没有显式调用虚函数,也会发生此错误?

我发现有趣的是,如果我没有实例化类的对象derived,则链接错误不再存在.为什么是这样?什么实例化与上述链接错误有关?

c++ virtual-functions undefined-reference

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

在l值和r值的情况下重载下标运算符"[]"

我在我的班级Interval中重载[]运算符以返回分钟.

但我不知道如何使用[]运算符将值分配给分钟.

例如:我可以使用此声明

cout << a[1] << "min and " << a[0] << "sec" << endl;

但是我想重载[]运算符,这样我甚至可以使用分配值来分钟或秒

a[1] = 5;
a[0] = 10;
Run Code Online (Sandbox Code Playgroud)

我的代码:

#include <iostream>

using namespace std;

class Interval
{

public:

    long minutes;
    long seconds;

    Interval(long m, long s)
    {
        minutes = m + s / 60;
        seconds = s % 60;
    }

    void Print() const
    {
        cout << minutes << ':' << seconds << endl;
    }

    long …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading subscript-operator

6
推荐指数
3
解决办法
9277
查看次数

构造函数和析构函数继承

我相信,ConstructorsDestructorsbase class不能被继承derived classes的基类的.我的理解是否正确.

c++ inheritance base-class derived-class

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

重载C++插入运算符(<<)

我正在尝试编写一个重载插入操作符的类,但是在我的头文件中我得到了错误.

Overloaded 'operator<<' must be a binary operator (has 3 parameters)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

.h文件

ostream & operator<<(ostream & os, Domino dom);
Run Code Online (Sandbox Code Playgroud)

.cpp文件

ostream & operator<< (ostream & os, Domino dom) {
    return os << dom.toString();
}
Run Code Online (Sandbox Code Playgroud)

我正在关注一本教科书,这是他们作为一个例子,但它不适合我..任何建议?

c++ operator-overloading

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

日期中的时区?

dateLinux中的命令从哪里获取timezone信息?我在系统中看不到/etc/localtime文件和/usr/share/zoneinfo目录。仍然当我执行date命令时,我得到以下输出

UTC 2010 年 12 月 9 日星期四 16:28:18

请告诉我命令从哪里获取时区信息?

谢谢,LinuxPenseur

linux timezone date localtime

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

构造函数不能是虚拟的

Internet上的一个C++教程中,我发现了以下关于构造函数不能为虚拟的原因

我们不能声明虚构造函数.我们应该在编译时指定对象的确切类型,以便编译器可以为该特定类型分配内存.

这种描述是否正确?

我特别对这句话感到困惑:so that the compiler can allocate memory for that specific type.

c++ constructor virtual-functions

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

不调用复制构造函数

可能重复:
为什么在这种情况下不调用复制构造函数?

考虑下面的示例程序:

#include <iostream>

using namespace std;

class sample
{
    private:
        int x;

    public:
        sample(int a=0) : x(a)
        {
            cout << "default ctor invoked\n";
        }

        sample(const sample& obj)
        {
            cout << "copy ctor invoked\n";
        }

};

int main()
{
    sample s2 = sample(20); //Line1
    sample s3 = 20; //Line2

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Line1,首先使用参数20 sample调用类的构造函数.explicitly然后我希望调用复制构造函数来初始化s2.

在Line2中,首先使用参数20 sample调用类的构造函数.implicitly这里我还希望调用复制构造函数来初始化s2.

在这两种情况下,都不会调用复制构造函数?为什么会这样?我相信,我对复制构造函数的调用有一些问题.有人能纠正我哪里出错了吗?

c++ constructor copy-constructor

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