object-slicing

    -3热度

    3回答

    我对C++中的子类有些怀疑。我有这样的代码: class BaseClass() { BaseClass(); void doSomething(); } class SubClass : public BaseClass { SubClass(); void doSomething(); } 当我宣布一个BaseClass的对象可能是一个子类我

    2热度

    2回答

    我正在研究什么时候/为什么对象切片是危险的。 我读了一个关于what is safe slicing VS dangerous slicing的好链接。 这里是我可以总结一下(粗略地说): - 安全当基类型是值(例如A)。 危险当基础类型是参考(例如A&)。 读之后,我在Visual Studio中 + ReSharper的(一个VS插件)创建的测试代码。 我觉得我的情况是安全。但是,我在标记线#

    0热度

    1回答

    我有这个任务,我必须打印一个也提供用户位置的迷宫。但是,这个位置可以依赖于来自另一个功能的生成位置。我的意思是这个职位可以有很多不同的可能性。 我试图使用与.replace方法的组合切片,以便能够将字符更改为用户的符号为'A'的位置。 看到下面的代码,我在这里做错了什么? def print_maze(maze, position): """ Returns maze string from

    0热度

    1回答

    我需要根据布尔数组中的条件切片xyz坐标数组(其中布尔数组为1D)。 如果我的布尔数组是 [1,0,0,0,0,1,1,0,0,1,1,0,0,0,1] 我需要它切它以产生以下索引数组: [0,1,2,3,6,7,10,11,12]([:-2]真索引之间) 最终期望的输出将是XYZ坐标的数组这些索引: [XYZ [0],XYZ [1],XYZ [2]的xyz [3],XYZ [6]的xyz [ 7

    2热度

    1回答

    无论复制一个unique_ptr是否有意义*,我都试图实现这种类,只是简单地包装一个std::unique_ptr,并在进行复制时遇到困难,在智能指针指向基础的情况下并且存储的对象是派生类。 一个天真的实现拷贝构造函数都可以在互联网上找到(data是包装std::unique_ptr):这里 copyable_unique_ptr::copyable_unique_ptr(const copyab

    2热度

    3回答

    我遇到了对象切片的奇怪情况。我正在处理需要单例类的项目,所以我的基类和派生类都是单例类。以下示例案例描述了我的情况。 这是我的基类 // Base.h class Base { public: static Base& base; virtual void doSomething(){ cout<<"Base Do Something"<<endl; }

    4热度

    1回答

    下面是代码: #include <iostream> #include <vector> #include <array> class Parent { public: virtual void whatAmI(){std::cout << "A Parent" << std::endl;} virtual long getValue(){std::cout <<

    0热度

    2回答

    注意:我编辑了这个问题! 我在Python中进行迭代时遇到了问题,尤其是当我想总结一些数值时。这里有我所面临的问题的详细信息: 我有一个元组列表,看起来像这样: [(1, 0.5, 'min'), (2, 3, 'NA'), (3, 6, 'NA'), (4, 40, 'NA'), (5, 90, 'NA'), (6, 130.8, 'max'), (7, 129, 'NA'), (

    0热度

    3回答

    我有一个包含类Event的对象的队列。 std::priority_queue<Event> events; 但事件只是实际事件的超类。 让我们假设我们有以下类: class Event{ public: void Action(){ std::cout<<"do nothing"<<std::endl; } }; class XEvent :

    1热度

    3回答

    有没有办法如何离开,克服对象切片而不使用新的关键字作为参数功能?我有基本对象 class Person{ public: Person(string name , int age){ this -> name = name; this -> age = age; } virtual void getInfo(){