컴파일러 경고(수준 1) C4395
'function': 멤버 함수는 initonly 데이터 멤버 'member'의 복사본에서 호출됩니다.
멤버 함수가 initonly(C++/CLI) 데이터 멤버에서 호출되었습니다. C4395는 함수에서 정수 데이터 멤버를 수정할 수 없음을 경고합니다.
다음 샘플에서는 C4395를 생성합니다.
// C4395.cpp
// compile with: /W1 /clr
public value class V {
public:
V(int data) : m_data(data) {}
void Mutate() {
System::Console::WriteLine("Enter Mutate: m_data = {0}", m_data);
m_data *= 2;
System::Console::WriteLine("Leave Mutate: m_data = {0}", m_data);
}
int m_data;
};
public ref class R {
public:
static void f() {
System::Console::WriteLine("v.m_data = {0}", v.m_data);
v.Mutate(); // C4395
System::Console::WriteLine("v.m_data = {0}", v.m_data);
}
private:
initonly static V v = V(4);
};
int main() {
R::f();
}