質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C++

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

Q&A

2回答

1366閲覧

struct{}に続くbo

reotantan

総合スコア295

C++

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

0グッド

0クリップ

投稿2015/10/21 20:20

こんなコードが教科書にあり、bo={}の部分でエラーになります。
struct{}に何かが続くような文法がc++にあるのでしょうか・

コード struct bigone{ int serno; char text[1000]; }bo={123,"this is a BIG structure"}; //-- three functions that have the structure as a parameter void valfunc(bigone v1); void ptrfunc(const bigone *p1); void reffunc(const bigone &r1); void main(){ valfunc(bo);//passing the variable itself ptrfunc(&bo);//Passint the address of variable reffunc(bo);//passing a reference to the variable } // pass by value void valfunc(bigone v1){ cout<<'\n'<<v1.serno; cout<<'\n'<<v1.text; } //pass by pointer void ptrfunc(const bigone *p1){ cout<<'\n'<<p1->serno; cout<<'\n'<<p1->text; } //pass by reference void reffunc(const bigone &r1) { cout<<'\n'<<r1.serno; cout<<'\n'<<r1.text; }

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

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

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

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

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

guest

回答2

0

C++では構造体の定義と、変数の宣言(および初期化)を一緒に書く事ができます。つまり、

C++

1struct bigone { 2 int serno; 3 char text[1000]; 4}; 5bigone bo = {123, "this is a BIG structure"};

と分けて書いた場合と同じ意味になります。一緒に書いてしまう書き方は特に無名構造体を使うときに重宝されます。
参考: ロベールのC++教室 - 第12章 名無し -
もし、この書き方でエラーが出るのであればコンパイラが古く標準仕様のC++に対応していないと思われます。手元ClangとGCC両方でエラーにはなりませんでした。コンパイラを変えるか、バージョンアップすることをお勧めします。

逆にvoid main(){の部分はC++として正しくありません(エラーになってコンパイルできませんでした)。C++では(Cとは異なり)mainは必ずintを返すと決まっているようです。
参考: [迷信] void main(void)
教科書が古く(かつ正しくない)可能性がありますので、あまり鵜呑みにしないことをお勧めします。

投稿2015/10/21 22:15

編集2015/10/21 22:17
raccy

総合スコア21735

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

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

0

もしかして、先頭部分に
#include <iostream>
using namespace std;
を入れてないとか。。。

投稿2015/10/21 23:21

STL

総合スコア55

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問