プロが教える店舗&オフィスのセキュリティ対策術

以下のようなCで書かれたヘッダがあったとして

---testc.h---
typedef struct __Test {
int i;
char c[30];
char* x;
} Test;


これを以下のようにnewして使うのは問題ないでしょうか?

---test.cpp---

extern "C" {
#include test.h
}

int main(void)
{
Test* test = new Test();
test->i = 30;
test->c[3] = 'a';
test->x = "aiueo";
return 0;
}

A 回答 (3件)

★アドバイス


>この手の typedef を見るたびに思うんだけど, なんで
 ↑
 構造体の名前は別々に管理されているので同名を使えます。
 きっと違う名前を付けなければいけないと思うのでしょう。
 
 typedef struct 名前1 {
 :
 } 名前2;
 
 『名前1』と『名前2』は同じでも良いのです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
同じ名前でもよいというのを初めて知りました。

お礼日時:2008/04/14 07:28

基本的には大丈夫だけど強いていえば「__ で始まるタグは避けた方が安全」かな.


この手の typedef を見るたびに思うんだけど, なんで
typedef struct Test {
....
} Test;
ってしないのかなぁ?
    • good
    • 0
この回答へのお礼

_がついているのはシステム予約されていたりするみたい記述を
みかけたことがあります。
回答ありがとうございました。

お礼日時:2008/04/14 07:29

特に問題はないと思いますけど。


C++において構造体はクラスの一種です。デフォルトでメンバがpublicになるくらいしか違いはなかったと思います。
    • good
    • 0
この回答へのお礼

デフォルトのアクセス指定子がpublicになるだけなのですね。
回答ありがとうございました。

お礼日時:2008/04/14 07:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています