タイトル通りではないかもしれないですが、
以下のソースで、「x()」を使わずに、「xx()」を使用するにはどうすればよいでしょうか?
説明不足ですが、どういえば言いのか判らないので、
うまく表現できないです。
要するに、「x()」の一階層上の「xx()」でアクセスがしたいのです???...
#include<iostream>
using namespace std;
class data
{
public:
struct list
{
int m;
int n;
list operator +(list &dat);
list operator -(list &dat);
int x(){return m;}
} li;
intxx()
{
data::list cd;
return cd.m;
}
};
data::list data::list::operator +(data::list &dat)
{
list tmp;
tmp.m=tmp.n=dat.m+dat.n;
return tmp;
}
data::list data::list::operator -(data::list &dat)
{
list tmp;
tmp.m=tmp.n=dat.m-dat.n;
return tmp;
}
int main()
{
data dat1,dat2;
dat1.li.m=10;
dat1.li.n=79;
dat2.li=dat1.li+dat1.li;
cout << dat2.xx();
cout << dat2.li.x();
while(1){}return 0;
}
大変申し訳ありませんが、よろしくお願いします。
また、何か上手な記述がありましたら、ご教授ください。
No.4
- 回答日時:
>ところで、「li.m」の「m」が「.」を押しても出ないのですが、
>なぜでしょうか?
経験上、プロジェクトを閉じて、「.ncb」のファイルを削除すると回復する場合があります。
VC++6.0の場合。
No.2
- 回答日時:
>に変更しましたら無事通りました。
あのう、”通る”というと、コンパイルが通るとか、
処理が通るといったことを考えるんですけど。
相手に理解してもらいたいのでしたら「正常に動作した」という
意味では使わないほうがいいですよ。
>li.m→ここで、「.」を押してもmが出てこなかったので、
>無視していたようでした。
>ありがとうございました。
>ところで、「li.m」の「m」が「.」を押しても出ないのですが、
>なぜでしょうか?
?????????
出るってなにが?
いきなり突拍子もないことを言わないでください。
もしかして、VisualStudioをお使いで、IntelliSenseのことをいってますか?
http://www.itmedia.co.jp/dict/os/kind/windows/pr …
>m n を同一の変数内で、足し算をしたかったのです。
>while(1){}return 0;
>は、終了しないようにするためです。
>判りにくいですが、画面の出力の確認のためでした。
出力内容の確認のためでもそんなことはしません。
大体そんなことをしたらCPU使いっぱなしになって大変なことになります。
getchar()でキー入力待ちにすればいいだけです。
getchar()
はい、わかりました。
以後これを使います、
こういう関数があったのですか、
私は、while(1){} か、 cin >> string;
しか使ったことないので、悩んでいました。
ありがとうございます。
はい、インテリセンスのことです。
すみません。
通ったという表現は、私のレベルでは、コンパイラが教師みたいなものでして、以後質問時には気をつけます。
それで、結局、何故なのでしょうか?
No.1
- 回答日時:
すみません。
私にはクラスの構造と、何をこれでしようとしているかが理解できません・・・
メンバのmとnは何を示すものでしょう?
x()も、、xx()もmを返しているだけで何をしているのでしょう?何のためのメンバ関数なのでしょう?
>int xx()
>{
>data::list cd;
>return cd.m;
>}
cd.mですが、data::listにデフォルトコンストラクタがないから不定な値を返しています。
最後の
while(1){}return 0;
これなんて、永久にプログラムが終了しないんですけども・・・
この回答への補足
回答ありがとうございました。
int xx()
{
data::list cd;
return cd.m;
}
の部分を、
int xx()
{
return li.m;
}
に変更しましたら無事通りました。
li.m→ここで、「.」を押してもmが出てこなかったので、
無視していたようでした。
ありがとうございました。
ところで、「li.m」の「m」が「.」を押しても出ないのですが、
なぜでしょうか?
---------------------------------------------
m n を同一の変数内で、足し算をしたかったのです。
while(1){}return 0;
は、終了しないようにするためです。
判りにくいですが、画面の出力の確認のためでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- MySQL MYSQL エラー 2 2022/10/18 11:37
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python - Excel で Webからデー...
-
構造体のアクセスについて
-
STLのlistで重複するものだけを...
-
C# GetFilesで複数のファイルの...
-
Application.ScreenUpdating = ...
-
16進の10進変換について
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
python3について。
-
CGI(Perl)で、Net::FTPを使いたい
-
<SELECT>タグの折り返し
-
【至急!!!】python言語で本を見...
-
sendmailで複数アドレスに送信...
-
実行中の変数の中身をイミディ...
-
UWSCのSELECT文の記述方法
-
メモリをアドレスを直接指定し...
-
フォームの日本語が文字化け
-
pythonで演算子を変数に代入す...
-
文字の横にプルダウンを表示さ...
-
VB6で、長い時間かかる処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Python - Excel で Webからデー...
-
どちのほうがすきですか?
-
【python】辞書作成(ネスト)を...
-
C# GetFilesで複数のファイルの...
-
Scheme 中置式から後置式へ
-
Pythonでリストの要素の順番を...
-
C言語:単語カウント
-
STLのlistで重複するものだけを...
-
可変引数をconstで参照渡し
-
PerlでXMLを解析して出力する。
-
複数のIP取得
-
Ademの関係(Schemeについて教...
-
ギブアップ!!
-
リストの中のDataFrameに他のDa...
-
python3でのリスト作成について...
-
C言語:ファイル操作
-
プログラミングの問題について...
-
texで"図"または"Fig"を外したい
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
おすすめ情報