fork download
  1. /*IntArray.h*/
  2. #ifndef INTARRAY_H_
  3. #define INTARRAY_H_
  4.  
  5. class IntArray {
  6. public:
  7. //コンストラクタ
  8. IntArray(int size);
  9.  
  10. //デストラクタ
  11. ~IntArray();
  12.  
  13. //コピーコンストラクタ
  14. IntArray(const IntArray& other);
  15.  
  16. //メンバへのアクセス関数(取得)
  17. int Get(int i);
  18.  
  19. //メンバへのアクセス関数(変更)
  20. void Set(int i, int value);
  21.  
  22. //配列のサイズを返す
  23. int Size();
  24.  
  25. //インデックスのチェック
  26. void CheckIndex(int i);
  27.  
  28. //代入演算子のオーバーロード
  29. void operator=(const IntArray& other);
  30.  
  31. private:
  32. //動的配列
  33. int* m_array;
  34.  
  35. //配列の要素数
  36. int m_size;
  37. };
  38.  
  39. #endif
  40.  
  41.  
  42. /*IntArray.cpp*/
  43. #include"IntArray.h"
  44. #include<iostream>
  45. #include<cstdlib>
  46. using namespace std;
  47.  
  48. IntArray::IntArray(int size) {
  49. m_array = new int[size];
  50. m_size = size;
  51.  
  52. //fill_nは指定子たデータで配列などを埋める関数
  53. fill_n(m_array, m_size, 0);
  54.  
  55. cout << "コンストラクタが呼ばれました。"
  56. << "要素数は " << m_size << "です。" << endl;
  57. }
  58.  
  59. IntArray::~IntArray() {
  60. delete[] m_array;
  61.  
  62. cout << "デストラクタが呼ばれました。"
  63. << "要素数は " << m_size << "でした。" << endl;
  64. }
  65.  
  66. IntArray::IntArray(const IntArray& other) {
  67. m_array = new int[other.m_size];
  68. m_size = other.m_size;
  69.  
  70. copy(other.m_array, other.m_array + m_size, m_array);
  71.  
  72. cout << "コピーコンストラクタが呼ばれました。" << endl;
  73. }
  74.  
  75. int IntArray::Size() {
  76. return m_size;
  77. }
  78.  
  79. int IntArray::Get(int i) {
  80. CheckIndex(i);
  81. return m_array[i];
  82. }
  83.  
  84. void IntArray::Set(int i, int value) {
  85. CheckIndex(i);
  86. m_array[i] = value;
  87. }
  88.  
  89. void IntArray::CheckIndex(int i) {
  90. if (0 <= i && i < m_size) {
  91. //インデックスは正常
  92. }
  93. else {
  94. cout << "インデックスが不正です!" << endl
  95. << "値 : " << i << endl;
  96. exit(EXIT_FAILURE);
  97. }
  98. }
  99.  
  100. void IntArray::operator=(const IntArray& other) {
  101. int* array = new int[other.m_size];
  102.  
  103. delete[]m_array;
  104. m_array = array;
  105. m_size = other.m_size;
  106. copy(other.m_array, other.m_array + m_size, m_array);
  107. }
  108.  
  109. /*Operator.cpp*/
  110. #include<iostream>
  111. #include"IntArray.h"
  112. using namespace std;
  113.  
  114. int main()
  115. {
  116. IntArray a(5);
  117. IntArray b(5);
  118.  
  119. //に値を入力していく
  120. for (int i = 0; i < a.Size(); i++) {
  121. int n;
  122. cin >> n;
  123. a.Set(i, n);
  124. }
  125.  
  126. //bにコピーして各値を2倍する
  127. b.operator=(a);
  128. for (int i = 0, size = b.Size(); i < size; i++) {
  129. b.Set(i, b.Get(i) * 2);
  130. }
  131.  
  132. for (int i = 0, size = a.Size(); i < size; i++) {
  133. cout << a.Get(i) << " -> " << b.Get(i) << endl;
  134. }
  135. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:2: error: illegal character: '#'
#ifndef INTARRAY_H_
^
Main.java:3: error: illegal character: '#'
#define INTARRAY_H_
^
Main.java:6: error: illegal start of type
public:
      ^
Main.java:11: error: illegal start of type
	~IntArray();
	^
Main.java:14: error: illegal start of type
	IntArray(const IntArray& other);
	         ^
Main.java:29: error: '(' expected
	void operator=(const IntArray& other);
	             ^
Main.java:29: error: <identifier> expected
	void operator=(const IntArray& other);
	                             ^
Main.java:29: error: <identifier> expected
	void operator=(const IntArray& other);
	                                    ^
Main.java:31: error: illegal start of type
private:
       ^
Main.java:33: error: <identifier> expected
	int* m_array;
	   ^
Main.java:33: error: <identifier> expected
	int* m_array;
	            ^
Main.java:39: error: illegal character: '#'
#endif
^
Main.java:43: error: illegal character: '#'
#include"IntArray.h"
^
Main.java:43: error: class, interface, or enum expected
#include"IntArray.h"
        ^
Main.java:44: error: illegal character: '#'
#include<iostream>
^
Main.java:45: error: illegal character: '#'
#include<cstdlib>
^
Main.java:48: error: class, interface, or enum expected
IntArray::IntArray(int size) {
^
Main.java:50: error: class, interface, or enum expected
	m_size = size;
	^
Main.java:53: error: class, interface, or enum expected
	fill_n(m_array, m_size, 0);
	^
Main.java:55: error: class, interface, or enum expected
	cout << "???????????????"
	^
Main.java:57: error: class, interface, or enum expected
}
^
Main.java:62: error: class, interface, or enum expected
	cout << "??????????????"
	^
Main.java:64: error: class, interface, or enum expected
}
^
Main.java:68: error: class, interface, or enum expected
	m_size = other.m_size;
	^
Main.java:70: error: class, interface, or enum expected
	copy(other.m_array, other.m_array + m_size, m_array);
	^
Main.java:72: error: class, interface, or enum expected
	cout << "??????????????????" << endl;
	^
Main.java:73: error: class, interface, or enum expected
}
^
Main.java:77: error: class, interface, or enum expected
}
^
Main.java:81: error: class, interface, or enum expected
	return m_array[i];
	^
Main.java:82: error: class, interface, or enum expected
}
^
Main.java:86: error: class, interface, or enum expected
	m_array[i] = value;
	^
Main.java:87: error: class, interface, or enum expected
}
^
Main.java:96: error: class, interface, or enum expected
		exit(EXIT_FAILURE);
		^
Main.java:97: error: class, interface, or enum expected
	}
	^
Main.java:103: error: class, interface, or enum expected
	delete[]m_array;
	^
Main.java:104: error: class, interface, or enum expected
	m_array = array;
	^
Main.java:105: error: class, interface, or enum expected
	m_size = other.m_size;
	^
Main.java:106: error: class, interface, or enum expected
	copy(other.m_array, other.m_array + m_size, m_array);
	^
Main.java:107: error: class, interface, or enum expected
}
^
Main.java:110: error: illegal character: '#'
#include<iostream>
^
Main.java:111: error: illegal character: '#'
#include"IntArray.h"
^
Main.java:114: error: class, interface, or enum expected
int main() 
^
Main.java:117: error: class, interface, or enum expected
	IntArray b(5);
	^
Main.java:120: error: class, interface, or enum expected
	for (int i = 0; i < a.Size(); i++) {
	^
Main.java:120: error: class, interface, or enum expected
	for (int i = 0; i < a.Size(); i++) {
	                ^
Main.java:120: error: class, interface, or enum expected
	for (int i = 0; i < a.Size(); i++) {
	                              ^
Main.java:122: error: class, interface, or enum expected
		cin >> n;
		^
Main.java:123: error: class, interface, or enum expected
		a.Set(i, n);
		^
Main.java:124: error: class, interface, or enum expected
	}
	^
Main.java:128: error: class, interface, or enum expected
	for (int i = 0, size = b.Size(); i < size; i++) {
	^
Main.java:128: error: class, interface, or enum expected
	for (int i = 0, size = b.Size(); i < size; i++) {
	                                 ^
Main.java:128: error: class, interface, or enum expected
	for (int i = 0, size = b.Size(); i < size; i++) {
	                                           ^
Main.java:130: error: class, interface, or enum expected
	}
	^
Main.java:132: error: class, interface, or enum expected
	for (int i = 0, size = a.Size(); i < size; i++) {
	                                 ^
Main.java:132: error: class, interface, or enum expected
	for (int i = 0, size = a.Size(); i < size; i++) {
	                                           ^
Main.java:134: error: class, interface, or enum expected
	}
	^
56 errors
stdout
Standard output is empty