전체 글 (170) 썸네일형 리스트형 GNS3/장비/ASAv의 NAT 설정 # 개요8.3 버전에서 8.4로의 업그레이드를 통해 많은 변화가 있음. NAT Policy 순서 Manual NAT -> Auto NAT -> Manual NAT Policies -> after lists Auto NAT설정값의 위치는 NAT Table에 존재. - 상위 정책이 구체적인것 - auto NAT --> 일반적인 범위 - 상위 정책에 예외적이고 일반적인 범위에 해당하지 않는 범위는 Manual NAT로 설정.Policy 안에서 rule들도 rule들의 범위안에서 순서의 적용을 받는다. - Policy의 객체들 구분 단위는 네트워크 범위 (192.168.1.0) , 호스트 (192.168.1.10)로 구분 - 객체 중심 == NAT 각각의 객체 단위들은 각각의 NAT 설정을 가지고 있다. -> .. C++/객체 배열 객체 배열 객체 배열은 원소가 객체라는 점을 재외하고 선언과 그 활용이 일반 배열과 동일하다.객체 배열은 반드시 기본 생성자를 호출하며,클래스의 기본생성자 외 생성자를 생성시, 객체 배열을 사용해 해당 클래스로 객체를 생성했을 떄,기본 생성자가 존재하지 않아 오류가 난다* 반드시 기본 생성자를 삽입하여야 한다. Circle 클래스의 객체 배열 선언 및 활용1234567891011121314151617181920212223242526272829303132333435#include using namespace std; class Circle {private: int radius;public: Circle() { radius = 1; } Circle(int r) { radius = r; } void setRa.. C++/객체 포인터 객체 포인터 C언어에서 포인터 선언과 동일하게 객체에 대한 포인터 변수를 선언하고 이 포인터 변수를 통해 객체의 멤버 변수를 읽고 값을 쓰거나 멤버 함수를 호출할 수 있다. 객체 포인터 선언12345678910111213141516class Circle {private: int radius;public: Circle(); Circle(int r); double getArea(); }; Circle donut;double d = donut.getArea(); Circle *p;p = &donut;d = p->getArea();cs 객체 주소 지정 방법1231. p = &donut;2. Circle* p = &conut; cs 객체 멤버 접근 방법1231. d = donut.getArea();2. d = p.. C++/헤더 파일과 cpp 파일로 분리 예시 분리 전 코드1234567891011121314151617181920212223242526272829303132333435#include using namespace std; class Adder { int op1, op2;public: Adder(int a, int b); int process();}; Adder::Adder(int a, int b) { op1 = a; op2 = b;} int Adder::process() { return op1 + op2;} class Calculator {public: void run();}; void Calculator::run() { cout > a >> b; Adder adder(a, b); cout a >> b; Adder adder(a, b); cout C++/C++ 프로그램 작성법 헤더 파일과 cpp 파일 분리 클래스마다 클래스의 선언부와 구현부를 헤더 파일과 cpp 소스 파일로 분리하면 프로그램 전체를 관리하기 쉬울 뿐더러, 클래스를 다른 프로그램에서 재사용하기 쉽다. 클래스를 활용하는 모든 코드들은 클래스의 대한 선언이 필요하므로, 따로 분리해 놓은 헤더 파일에 선언부가 선언 되어 있으면 헤더파일만 include하여 재사용하면 된다. 다음과 같은 원칙으로 분리하여 C++의 소스코드를 작성하는 것이 바람직하다.* 클래스마다 선언부는 헤더 파일에, 구현부는 cpp파일에 분리하여 작성한다.* main() 등 함수나 전역 변수는 한 개 이상의 cpp 파일에 나누어 작성한다. visual stdio 솔루션 상 파일 저장 구조는 이렇다. Circle.h - 선언부12345678class .. C++/C++ 구조체 C와 호환적인 구조체와 선언 C++은 C와의 호환성을 위해 구조체(struct)를 지원한다.* C++ 구조체는 표준 C 구조체에서 기능을 확장하여 클래스와 동일한 구조와 기능을 가진다.* C++ 구조체는 struct로 선언하며, 멤버 변수와 멤버 함수를 가지고, C와 다르게 접근 지정도 해야 한다.* 디폴트 접근 지정은 public 이다. 구조체의 객체 생성 1234567891011struct structName {private: public: protected: }; structName stObj; cs [구조체 이름] [구조체 객체 이름]; 으로 생성하며C언어와 달리 구조체 객체 생성시 struct를 붙이지 않는다.struct structName stObj; 구조체와 클래스의 차이점 C++ 구조체는 .. C++/인라인 함수 인라인 함수의 필요성 - 오버헤드 함수의 실행과 종료 과정에서 종료를 할 때 시간 소모가 발생한다.시간 소모량이 클수록 오버 헤드가 발생한다. 오버 헤드는 함수의 실행과 종료가 많아 질수록 시간 소모량이 커지면서 발생한다고 볼 수 있다.오버 헤드는 다음과 같은 실행 플로우에서 발생한다. 함수 호출 오버헤드의 심각한 사례 다음 코드는 odd()함수의 x%2를 계산하는 시간보다, odd() 함수의 호출과 리턴에 따른 오버헤드 시간이 더 크다. 12345678910111213141516#include using namespace std; int odd(int x) { return (x % 2);}int main() { int sum = 0; for (int i = 1; i C++/접근지정자 접근 지정자란? Access Modifier, Access Specifier 라고도 하며, 객체 지향 언어에서 객체를 캡슐화 하고, 외부에서 접근이 가능한 공개 멤버와 외부에서의 접근을 허용하지 않는 인가하지 않는 비공개 멤버를 구분 짓는 지정자이다. C++ 에서는 3가지 멤버 접근 지정자를 지원한다. * private - 비공개 클래스 내의 멤버 함수에게만 접근을 허용, 인가 한다.* public - 공개 클래스 내외를 막론하고 프로그램의 모든 함수들에게 접근을 허용, 인가한다.* protected - 보호 클래스 내의 멤버 함수에게 접근을 허용 하며 이 클래스를 상속 받는 파생 클래스의 멤버 함수에게 접근을 허용, 인가한다. 디폴트 접근 지정 디폴트 접근 지정은 private로 처리되며 디폴트 접근 .. 이전 1 ··· 11 12 13 14 15 16 17 ··· 22 다음