[過去ログ] C++相談室 part155 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
561
(3): 2021/04/29(木)13:03 ID:K/HFYMcp(1/4) AAS
外部リンク:negation.hatenadiary.org
↑で、簡単に書けば、
class Book {・・・};
class Novel : public Book{・・・};
class Comic : public Book{・・・};
class Shelf { public: std::vector<Book> list; ・・・ };
Shelf g_shelf;
int main(void) {
Novel n = Novel("Hoshio wo tugumono");
Comic c = Comic("Kimetsu no Yaiba");
省13
562
(1): 2021/04/29(木)13:05 ID:K/HFYMcp(2/4) AAS
>>561
すまん。間違った。正しくはこう :
int main(void) {
Novel n = Novel("Hoshio wo tugumono");
Comic c = Comic("Kimetsu no Yaiba");
Shelf s = Shelf();
s.list.push_back(n);
s.list.push_back(c);
}
564
(1): 2021/04/29(木)13:10 ID:K/HFYMcp(3/4) AAS
外部リンク:stackoverflow.com
↑によれば、やっぱり、>>561>>562 のようなやり方は間違いで、
std::vector<T> の T は、Bookではなく、shared_ptr<Book> のようなものを入れるべきで、
以下の様になっている。だから、>>561>>562 は間違いだよね?
class Instruction {・・・};
class Add: public Instruction{・・・};

typedef shared_ptr<Instruction> PInstruction;
vector<PInstruction> v;
v.emplace_back(make_shared<Add>());
566: 2021/04/29(木)13:19 ID:K/HFYMcp(4/4) AAS
>>563
なるほど、では、正しい書き方としては、たとえば、こうかな:

class Book {・・・};
class Novel : public Book{・・・};
class Comic : public Book{・・・};

typedef shared_ptr<Book> PBOOK;

class Shelf : public std::vector<PBOOK> {・・・};
Shelf g_shelf;

int main(void) {
std::shared_ptr<Novel> n = make_shared<Novel>("Hoshio wo tugumono");
省4
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.038s