回答ありがとうございます!
progma onceがあるから多重定義にならないんですね!これがほしい回答でした。
質問の仕方が悪くて、意図が伝えられてませんでした。
さきほど用意したクラスのDef.hがあると思うのですが、普通ならDef.hとDef.cppに分けるのが一般的だと調べてたらでてきました。次の通りです。
Def.h
コード:
#pragma once
class Def
{
public:
static const int windowWidth;
static const int windowHeight;
};
Def.cpp
コード:
#include "Def.h"
const int Def::windowWidth = 480;
const int Def::windowHeight = 360;
このくらい小さかったらわざわざファイル分けたくないなーと思い一つにまとめたのが最初の質問の次のクラスです。
コード:
#pragma once
class Def
{
public:
static const int windowWidth;
static const int windowHeight;
};
const int Def::windowWidth = 480;
const int Def::windowHeight = 360;
このDef.hをmain.cppで呼び出して使おうとしてました。
しかし、質問でも言った通り次の箇所がヘッダーに書くと多重定義になってしまうと思ってたのですが普通に動作してたので不安になり質問しました。
const int Def::windowWidth = 480;
const int Def::windowHeight = 360;
ただ#pragma onceがあることでそれが防げるとわかったので解決しました。
ありがとうございます!