小编Cor*_*ith的帖子

成员变量多态性和参考参数

我是C++的新手,对成员变量多态性有疑问.我有以下类定义 -

class Car
{
    public:
        Car();
        virtual int getNumberOfDoors() { return 4; }
};

class ThreeDoorCar : public Car
{
    public:
        ThreeDoorCar();
        int getNumberOfDoors() { return 3; }
};

class CarPrinter
{
    public:
        CarPrinter(const Car& car);
        void printNumberOfDoors();

    protected:
        Car car_;
};
Run Code Online (Sandbox Code Playgroud)

和实施

#include "Car.h"

Car::Car()
{}

ThreeDoorCar::ThreeDoorCar()
{}

CarPrinter::CarPrinter(const Car& car)
: car_(car)
{}

void CarPrinter::printNumberOfDoors()
{
    std::cout << car_.getNumberOfDoors() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行以下命令时,会调用父类的getNumberOfDoors.我可以通过使成员变量Car成为指针来解决这个问题,但我更喜欢通过引用而不是指针(我理解为首选)传入输入.你能告诉我我做错了什么吗?谢谢!

ThreeDoorCar myThreeDoorCar;
std::cout << myThreeDoorCar.getNumberOfDoors() << std::endl;

CarPrinter carPrinter(myThreeDoorCar);
carPrinter.printNumberOfDoors();
Run Code Online (Sandbox Code Playgroud)

c++

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

使 gnuplot 的 x 轴从 0 开始,而不是从第一个日期开始

我正在绘制一些 [date, value] 格式的数据(cpu 随时间使用)并希望 xtics 从 0 或 1 开始,而不是第一个日期。

所以 10 小时它应该看起来像:0:01:00, 0:02:00, .., 0:10:00insead of 9:23:00 ...(因为数据中的第一天是 9 号晚上 11 点)。

我当前的日期时间设置:

set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set xtics format "%d:%H:%M" font ",25"
Run Code Online (Sandbox Code Playgroud)

编辑:如果有一种方法可以在没有日期信息的情况下从 x 轴上的 0 开始计算小时数,那也太棒了。无论哪种方式。我只想从 0 开始计数,以使“所用时间”非常清楚。

gnuplot

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

使两个类互相引用

我正在尝试制作一个文本冒险,其中不同的“地点”类可以互相指向。

例如,我有一个Manager类,其中包含每个地方的引用。然后我有一个Home班级,一个Club班级,通过经理互相引用。问题是由于循环引用我无法实例化它们。

这是我解决它的方法,但它很丑陋,因为我必须places在方法而不是__init__.

class Manager:
  def __init__(self):
    self.home = Home(self)
    self.club = Club(self)

class Home:
  def __init__(self, manager):
    self.places = {}
    self.manager = manager

  def display_plot_and_get_option (self):
    print "where do you want to go?"
    return 'club' #get this from user

  def get_next_place(self, place_name):
    self.places = { #THIS IS THE BAD PART, which should be in __init__ but can't
      'home':self.manaer.home
      'club':self.manaer.club }
    return self.places[place_name]

class Club:
  #similar code to Home
  pass …
Run Code Online (Sandbox Code Playgroud)

python oop

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

re.search()和re.findall()之间的区别

以下代码很奇怪:

 >>> words = "4324324 blahblah"
 >>> print re.findall(r'(\s)\w+', words)
 [' ']
 >>> print re.search(r'(\s)\w+', words).group()
 blahblah
Run Code Online (Sandbox Code Playgroud)

()操作似乎与较差的findall行为.为什么是这样?我需要它为csv文件.

为清晰起见编辑:我想blahblah使用findall 显示.

我发现那re.findall(r'\s(\w+)', words)就是我想要的,但不知道为什么findall以这种方式对待团体.

python regex

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

标签 统计

python ×2

c++ ×1

gnuplot ×1

oop ×1

regex ×1