명품 c++ 3장 12번 문제
visual studio code로 작성하는 나는
헤더파일과 cpp 파일을 구분하니까
컴파일러로 작동이 안됐다.
그래서 구글링 해본 결과
g++ -o exec main.cpp Ram.cpp
이 명령어 치니까 이렇게 만들어졌다!
그래서 실행 되었다.
소스 코드는
ram.h
class Ram {
char mem[100 * 1024];
int size;
public:
Ram();
~Ram();
char read(int address);
void write(int address, char value);
};
ram.cpp
#include<iostream>
#include<memory.h>
using namespace std;
#include "Ram.h"
Ram::Ram(){
size = 100 * 1024;
for (int i = 0; i < size; ++i)
mem[i] = 0;
}
Ram::~Ram(){
cout << "메모리 제거됨";
}
char Ram::read(int address){
return mem[address];
}
void Ram::write(int address, char value){
mem[address] = value;
}
main.cpp
#include<iostream>
using namespace std;
#include "Ram.h"
int main() {
Ram ram;
ram.write(100, 20); // 100 번지에 20 저장
ram.write(101, 30); // 101 번지에 30 저장
char res = ram.read(100) + ram.read(101); // 20 + 30 = 50
ram.write(102, res); // 102 번지에 50 저장
cout << "102 번지의 값 = " << (int)ram.read(102) << endl; // 102 번지 값 출력
}
// g++ -o exec main.cpp Ram.cpp