G++ ReadOnly Property [C++]
参照したWebはもう見つけられないので、メモをのこす。
=== ReadOnly.h ===
=== ReadOnly.cpp ===
=== test_ReadOnly.cpp ===
=== ReadOnly.h ===
#ifndef __READONLY_H__
#define __READONLY_H__
class ReadOnly {
public:
ReadOnly();
~ReadOnly() throw();
const int &Readonly_int;
const char * const Readonly_char_p;
void set_int(int n);
void set_char(char* p);
private:
int rw_int;
char rw_char_p[1000];
};
#endif
=== ReadOnly.cpp ===
#include
#include
#include
#include "ReadOnly.h"
ReadOnly::ReadOnly():Readonly_int(rw_int),Readonly_char_p(rw_char_p) {}
ReadOnly::~ReadOnly() throw(){}
void ReadOnly::set_int(int n){
rw_int = n;
}
void ReadOnly::set_char(char* p){
strcpy(rw_char_p,p);
}
=== test_ReadOnly.cpp ===
#include
#include
#include "ReadOnly.h"
char w[] ="World";
int main(int argc,char ** argv){
ReadOnly ro;
ro.set_int(999);
ro.set_char("Hello");
printf("int:%d char:%s\n",ro.Readonly_int,ro.Readonly_char_p);
// the following three can't be compiled
// ro.Readonly_int = 100; // assignment of read-only location
// ro.Readonly_char_p[0] = '\0'; // assignment of read-only location
// ro.Readonly_char_p = w; // assignment of read-only data-member `ReadOnly::Readonly_char_p'
return EXIT_SUCCESS;
}
2008-12-18 17:23
nice!(0)