smartarray.cpp
来自「Thinking_in_C___2.rar」· C++ 代码 · 共 44 行
CPP
44 行
//: C03:SmartArray.cpp
// From Thinking in C++, 2nd Edition
// at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// An array which checks boundaries
#include <iostream>
#include <cstdlib> // For exit() declaration
using namespace std;
class Array {
enum { size = 10 };
int a[size];
void check_index(const int index); // Private function
public:
Array(const int initval = 0); // Default argument value
void setval(const int index, const int value);
int readval(const int index);
};
// Constructor (don't duplicate the default value!):
Array::Array(const int intval) {
for (int i = 0; i < size; i++)
setval(i, intval); // Call another member function
}
void Array::check_index(const int index) {
if(index < 0 || index >= size) { // Logical OR
cerr << "Array error: setval index out of bounds" << endl;
exit(1); // Standard C library function; quits program
}
}
void Array::setval(const int index, const int value) {
check_index(index);
a[index] = value;
}
int Array::readval(const int index) {
check_index(index);
return a[index];
}
int main() {
Array A, B(47);
// Out of bounds -- see what happens
int x = B.readval(10);
} ///:~
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?