#include <iostream>
class hoge{
private:
int a;
public:
hoge(){
a = 0;
}
int operator+(int fuga){
a = a + fuga;
return a;
}
int operator[](int fuga){
return 1;
}
};
int main(){
hoge* p;
p = new hoge;
std::cout << ((*p) + 5) << std::endl;
std::cout << ((*p)[1] ) << std::endl;
// 5
// 1
// std::cout << ((*p) [] 1); エラーです。何故ですか?
}
No.1ベストアンサー
- 回答日時:
>// std::cout << ((*p) [] 1); エラーです。
何故ですか?定義された構文に従ってないから。
関数的に呼び出したいのなら
(*p).operator[](1)
とか。
この回答への補足
あれ?独自の演算子を定義できる方法だと思ったけど,
int operator$(int fuga){
a = a + fuga;
return a;
}
とかやったら
コンパイルエラーだ(汗
#もしかして規格側で定義された演算子をオーバーロードできるだけで
独自の演算子を書いたり出来ない?(汗
#そうであれば、「規格でそうなっている」で納得することにするけど。
##っつーのも
## $$演算子とかを俺が定義した場合
## $1$と $$ 1 のどちらの演算子を定義したことになるのかなーと思ったから。
## もし記述方法によって書き換えられるとしたら,C++の元になっている
## Cはどういう構造の違いを与えているのかなーと。
みたいね。
どうやら
int operator +(int fuga){
return 1;
}
という定義が使えるようなので
int operator mod(int fuga){
return 1;
}
とか書いたら
エラー E2076 hoge.cpp 15: オーバーロード可能な演算子が必要
って言われたから
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
enumの値から定義名を文字列化...
-
#include "fstream.h"
-
指定した文字を削除したい
-
VC++で文字列から任意の文字を...
-
switch文のエラーについて
-
CStdioFile での数値データの読...
-
構造体配列のvectorへの変換と...
-
C++で行列とベクトルの積を求める
-
C言語 ストリームについて。
-
#define中の#のエスケープ
-
C++のifstreamの使い方
-
なぜ、C++の標準ヘッダをインク...
-
atlbase.h と afxwin.hの同時定義
-
JPEGやPNGが読めるLoadImage関数
-
C++でShowCursorを使いたい。
-
マイナスからプラスへ転じた時...
-
Notepad++の関数リスト表示の変...
-
DWORDの実際の型は何でしょうか
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
std::map の const 修飾について
-
構文エラーが出ているのですが...
-
switch文のエラーについて
-
enumの値から定義名を文字列化...
-
VC++で文字列から任意の文字を...
-
構造体配列のvectorへの変換と...
-
wstringの主力
-
vectorのイテレータを大小比較...
-
std::wstringのメモリリークに...
-
opencvを使って画像比較
-
ヘッダーファイルがインクルー...
-
C++で2次元配列charをループしたい
-
【C++】ヘッダ内でstringを格納...
-
#define中の#のエスケープ
-
リモートデスクトップの接続元I...
-
string型のフォーマット書式指...
-
ファイル名のリスト取得について2
-
C++での <iostream.h>と<iostre...
-
gccでコンパイル時のエラー
-
C言語 ストリームについて。
おすすめ情報