こんにちは。
初心者ですが、よろしくお願いします。
MFCを使用してダイアログベースのアプリケーションを作成しています。
<ヘッダ>
class Sample : public CDialog
{
(略)
public:
int SampleA(CString);
(略)
<ソース>
UINT SampleB(LPVOID pParam)
{
int n;
n = Sample::SampleA(CStringA) ←エラー
return 0;
}
メンバ関数ではない、SampleBから、上記のように呼出すと、「静的でないメンバ関数の中で呼び出しが正しくありません。」というエラーが表示されてしまいます。
ヘッダ内のメンバ関数宣言をstaticにすれば問題は解決できるのですが、このやり方しかないのでしょうか。
よろしくお願いします。
No.4
- 回答日時:
なぜstaticでは駄目なのでしょう?
その理由はともかく、特定のインスタンスに依存しないのであれば、メンバ関数にする必要もないのでは?
privateメンバ等にアクセスする必要があるなら、friend関数でもOKかと。
ご回答ありがとうございます。
クラスそのものを使用することはできず、
インスタンスを生成しないといけないということは
頭の片隅に入っていたのですが、
忘れてしまっていました。
もっと勉強してみます。
ありがとうございました。
No.1
- 回答日時:
C++ではオブジェクトというものを意識しなければいけません。
Sampleクラスはそのままでは使えません。
Sampleクラスのオブジェクトを生成しなければいけません。
int n;
Sample smp = new Sample();
n = smp.SampleA(...)
うーん、クラスの概念とオブジェクト指向に関して少し勉強されてみては?
ご回答ありがとうございます。
クラスそのものを使用することはできず、
インスタンスを生成しないといけないということは
頭の片隅に入っていたのですが、
忘れてしまっていました。
もっと勉強してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
C#において、同じインスタンス...
-
フォームの存在をチェックする方法
-
private static という変数の修飾
-
生成したインスタンスを削除す...
-
SQLを連続発行する時の正しい(?...
-
C# インスタンスの破棄
-
非staticフィールドを参照でき...
-
「インスタンス」の意味をわか...
-
インスタンスを共有するには
-
C#の構造体の開放のしかた
-
ASPX(C#)で別ファイルで自分で...
-
objective-cで分かりにくい所教...
-
オブジェクト参照がオブジェク...
-
変数の参照でエラーが出てしま...
-
文字列を日付に変換でParseExce...
-
抽象クラスのインスタンス生成...
-
newしないインスタンス?実体化...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
String a = "a"; と String b =...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
SQLを連続発行する時の正しい(?...
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
おすすめ情報