質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

484閲覧

C++でのクラスの宣言

LenItsuki

総合スコア89

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/05/23 12:27

C++でのクラスの宣言は,通常,
class 〇〇{
という形式か,
class 〇〇:public XX{
かと思いますが,私が参考にしているソースでは,
class 〇〇 XX{
と記述されているところがあります.
これは,どのように働きと理解すればよいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/05/23 12:37

"参考にしているソース"・・・出典を教えてください。
LenItsuki

2019/05/23 12:41

オープンなソースでないので,詳細情報を出すのは,ためらっています.
cateye

2019/05/23 12:45 編集

コンパイル通りますか? あと、環境なども教えて下さい。
LenItsuki

2019/05/23 12:48

ちょっと編集(スペルを編集)したものを以下に提示します.こんな感じです.ちなみに拡張子は,hppです. #ifndef __IKB_HPP_ #define __IKB_HPP_ #include "ako.hpp" #ifndef M_PI #define M_PI 3.141592 #endif namespace Apple { class cat_API Hip {
LenItsuki

2019/05/23 12:49

コンパイルは通ります.windowsでmingw+msysです.
yumetodo

2019/05/23 12:54

cat_API ってもしかしてマクロでは?
HogeAnimalLover

2019/05/23 12:58

コロンがあるならば「class 〇〇:XX」となり、private継承の省略形ですが、コロンもないのであればわからないですね。マクロも定義されていないのですか・
episteme

2019/05/23 13:07

cat_API が何かによるね。 ぶっちゃけ #define cat_API だったら無問題だし。
yumetodo

2019/05/23 13:21

ako.hppとかいうライブラリが小さければヘッダー見ればわかるかも。 もしデカくて追えないときはコンパイルするときに-dM -Eして出力からcat_APIを探すとかかな・・・(undefされてたらこれでは追えないけど gcc -dM -E <今までも書いてたオプションたち> | grep cat_API
guest

回答2

0

ベストアンサー

ako.hppまたはこの先の参照先でcatAPI Hipが独自定義されていると思います

投稿2019/05/23 13:17

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LenItsuki

2019/05/23 13:27

関連するヘッダーファイルを追っていきましたら, #define cat_API がありましたので,マクロで定義されていたためと思います. どうも,ありがとうございました.
guest

0

残念ながら通りません

c++

1usr ~/Project/test % cat t2.cpp 2 3class cat_API Hip{ 4 int a; 5public: 6 cat_API(); 7 Hip(); 8}; 9 10int main(void) 11{ 12 Hip h; 13 cat_API c; 14 15 return 0; 16} 17

text

1usr ~/Project/test % c++ -c t2.cpp 2t2.cpp:3:9: error: expected '(' for function-style cast or type construction 3 int a; 4 ~~~ ^ 5t2.cpp:2:16: error: variable has incomplete type 'class cat_API' 6class cat_API Hip{ 7 ^ 8t2.cpp:2:8: note: forward declaration of 'cat_API' 9class cat_API Hip{ 10 ^ 11t2.cpp:12:13: error: variable has incomplete type 'cat_API' 12 cat_API c; 13 ^ 14t2.cpp:2:8: note: forward declaration of 'cat_API' 15class cat_API Hip{ 16 ^ 173 errors generated. 18

環境
usr ~/Project/test % c++ --version
clang version 9.0.0 (trunk 358576)
Target: x86_64-unknown-linux-gnu
Thread model: posix

Linux Mint191 5.0.0-15-generic

投稿2019/05/23 13:01

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yumetodo

2019/05/23 13:04

コンパイルが通ってると言っているものに対して通りませんという解答はいかがなものか?普通に考えてcat_API がマクロなのでしょう
cateye

2019/05/23 13:09

>cat_API がマクロなのでしょう・・・質問者の方が分からないのであれば、gnu拡張とか有ったか?と思っただけで、当方としてはコンパイル通したわけですが・・・
yumetodo

2019/05/23 13:21

あー、なるほど(低評価取り下げました
cateye

2019/05/23 14:05 編集

^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問