16.7. メンバ関数の多重定義

char* c_str() const

x = 3;

を入れると

コンパイルエラーになる

 16_7.cpp: In member function ‘const char* my_string::c_str() const’:  16_7.cpp:14:7: error: assignment of data-member ‘my_string::x’ in read-only structure

	#include <iostream>
	struct my_string
	{
	        char m_data[256];
	        int x;
	        char* c_str()
	        {
	                std::cout << 1;
	                x = 3;
	                return m_data;
	        }
	        const char* c_str() const
	        {
	                std::cout << 2;
	        //      x = 3; error read only
	                return m_data;
	        }
	};
	int main()
	{
	        my_string a;
	        a.c_str();
	        const my_string& b = a;
	        b.c_str();
	}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-09-09 (金) 14:47:53 (2786d)