170 похожих чатов

Class A { public: virtual ~A() = default; virtual

X method(const X& x) = 0;
};

class B : public A {
public:
X method(const X& x) override { return x; }
};

class C : public A {
public:
X method(const X& x) override;

private:
X x_;
};
Всем привет!
Вот это .hpp, в .cpp есть реализация C::method, но получаю такую ошибку
undefined reference to `vtable for C'
collect2: error: ld returned 1 exit status
Вроде бы все реализрвано, и вернуальный деструктор дефалтный. В чем может быть проблема?

20 ответов

7 просмотров

.cpp прилинкован?

стас-ракета Автор вопроса
Alexander Karaev
.cpp прилинкован?

просто капец спасибо. Тупо забыл закомитить CMakeLists и пушнул

Зачем .hpp, если можно в .h?

🐈
Зачем .cpp если можно .C?

Показывает на другой язык.

🐈
Зачем .cpp если можно .C?

зачем .с когда можно без расширения

serfcity -fsanitize=undefined,address
Показывает на другой язык.

Ты удивишься, узнав что расширение не важно?

serfcity -fsanitize=undefined,address
Короче, популярнее.

А в .hpp часто шаблоны пишут. Тоже общепринято

🐈
удивлю. Не показывает

В .c приятно хранить С, а в .срр или .сс — С++.

serfcity -fsanitize=undefined,address
В .c приятно хранить С, а в .срр или .сс — С++.

Учи https://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Overall-Options.html#index-file-name-suffix-71 file.ccfile.cpfile.cxxfile.cppfile.CPPfile.c++file.CC++ source code which must be preprocessed. Note that in `.cxx', the last two letters must both be literally `x'. Likewise, `.C' refers to a literal capital C.

serfcity -fsanitize=undefined,address
Для ФС ДОСа разницы нет.

Не пользуйтесь устаревшими технологиями

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть предложения, как подобное можно упростить?
Hemul GM
12
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Карта сайта