🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

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

Q&A

解決済

1回答

6715閲覧

c++のclassのメンバ変数のアクセス権

nanyakanya

総合スコア44

C++

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

0グッド

0クリップ

投稿2020/11/29 02:11

<<演算子のオーバーロードを行いたい

<<演算子をオーバーロードを行うときにメンバ変数にアクセスする際にエラーがでてprivateだからと理解することはできましたが<<演算子のオーバーロードについて調べているときに同様な定義の仕方で実装できていたのでどこに違いがあるのかが知りたいです
### エラーコード
nume : declared private here
int frac::nume is private within this context

deno : declared private here
int frac::deno is private within this context

エラーが出たコード

c++

1#include<iostream> 2using namespace std; 3 4 5class frac{ 6 7 int nume; //分子 8 int deno; //分母 9 10 public: 11 function(){} 12 13}; 14 15//<<オーバーロード 16 ostream& operator << (ostream& os, const frac& ob ){ 17 if (ob.deno == 0 ){ 18 os << "This is wrong number !!" ; 19 }else 20 if(ob.deno == 1){ 21 os << ob.nume ; 22 }else{ 23 os << ob.nume << "/" << ob.deno ; 24 } 25 } 26 27 28 29

###成功している例

c++

1// overload_date.cpp 2// compile with: /EHsc 3#include <iostream> 4using namespace std; 5 6class Date 7{ 8 int mo, da, yr; 9public: 10 Date(int m, int d, int y) 11 { 12 mo = m; da = d; yr = y; 13 } 14 friend ostream& operator<<(ostream& os, const Date& dt); 15}; 16 17ostream& operator<<(ostream& os, const Date& dt) 18{ 19 os << dt.mo << '/' << dt.da << '/' << dt.yr; 20 return os; 21} 22 23int main() 24{ 25 Date dt(5, 6, 92); 26 cout << dt; 27}

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

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

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

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

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

guest

回答1

0

ベストアンサー

単にfriend関数だからじゃないですかね。

投稿2020/11/29 02:28

yumetodo

総合スコア5852

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

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

nanyakanya

2020/11/29 02:33

見逃してました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問