尝鲜c++踩坑合集_0neBean_NOTE

2020-02-12  本文已影响0人  0neBean

在家自学了一段时间c++.其中遇到了一些问题,及思考过程,记录下来和大家探讨一下.



如果你一定需要使用模板进行泛型编程,还要保留.h头文件,可以这么写:
头文件里只引用.cpp文件,包含模板的代码全部写到.cpp文件里.我试过了,不会影响泛型的继承
xxx.h:

//
// Created by 0neBean on 2020/1/11.
//

#ifndef DATA_STRUCTURE_OPERATOR_H
#define DATA_STRUCTURE_OPERATOR_H

#include "xxx.cpp"

#endif //DATA_STRUCTURE_OPERATOR_H

xxx.cpp:

#include <iostream>
#include "../base/Object.h"

using namespace std;

template<typename T, class C>
class Operator : public Object {

public:

    bool operator==(T obj) {
        cout << "== type" << endl;
        return this->value == obj;
    };
......





老子明明重载了赋值运算符,可是在赋值时依然报错
Boolean .cpp

#include "../operator/BoolOperator.h"

class Boolean : public BoolOperator<bool, Boolean> {
public:

    Boolean& operator=(bool b) {
        this->value = b;
        return *this;
    };
};

main.cpp

#include "dependency/dependency.h"
using namespace std;

int main() {
    Boolean b = false; //这里运算符报错 
    return 0;
}

Boolean .cpp 必须要这样写,用隐式转换

#include "../operator/BoolOperator.h"

class Boolean : public BoolOperator<bool, Boolean> {
public:
    Boolean(const bool b) {
        this->value = b;
    };
};

上一篇下一篇

猜你喜欢

热点阅读