Пытаетесь написать чисто виртуальный метод, но у меня, видимо, неправильный синтаксис?

0

Вот мой код:

#include <string>
#include <complex>

class a{
protected:
    std::string name;

public:
    a(std::string _name): name(_name) {};

    virtual void inside(const complex<double> &b, const complex<double> &t) const = 0;
};

Но визуальная студия дает мне эти ошибки для строки, где я объявил виртуальный метод:

Error   1   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error   2   error C2143: syntax error : missing ',' before '<'

Я не вижу, что я делаю неправильно.

  • 0
    Крис, у тебя есть пара правильных ответов. Было бы хорошо принять один как правильный. Вы можете сделать то же самое для других ваших вопросов: для 30 из 37 вы не приняли ответ. Вы можете получить 60 репутации за этот лот (почти вдвое больше текущего), и это увеличит ваши шансы получить ответы в будущем. - просто мысль.
  • 0
    @Benjohn Спасибо! Я сделаю это, извините, я не очень привык к stackoverflow.
Показать ещё 1 комментарий
Теги:
complex-numbers
pure-virtual

2 ответа

3
Лучший ответ

Аналогично std::string name; что вы ранее, шаблон complex правильно называется std::complex

  • 0
    Ах, вот и все! Спасибо!
2

Хотя это и не похоже на ошибки, что здесь не так, что вы пропустили спецификацию пространства имен на уровне complex<double>. Он также находится в пространстве имен std, поэтому вам нужно сообщить об этом компилятору. Пытаться:

virtual void inside(const std::complex<double> &b, const std::complex<double> &t) const = 0;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню