Internet & Web Application

C++

นานมากแล้วที่ไม่ได้จับ C++ แต่ก็ไม่ได้ตระหนกตกใจอะไร เพราะส่วนใหญ่ก็เขียน C++ พอๆกับที่ใช้ภาษาไทยอยู่แล้ว (แบร่ๆ) .. ยังไงก็ดี คงต้องพัฒนาแนวคิดด้าน OOP กันใหม่หน่อยละมั้ง

การบันทึกนี้ คงทำแบบแยกเป็นเรื่องๆ ไม่ต่อกันเสียทีเดียว .. ทำให้ง่ายเวลากลับมาเขียนต่อ ไม่ต้องจัดหมวดหมู่ให้เสียเวลา .. ดังนั้น เมื่อเวลาพบกับปัญหาใหม่ๆ ก็จะกลับมาเขียนเพิ่มเติมต่อเนื่องไป


Namespace

ใน C++ เราสามารถประกาศ “Group” ของ Unit เพื่อถ้าถึงได้ เช่น

namespace net_connect
{
  int make_connection();
  int test_connection();
  //so forth...
}

และสำหรับเวลาเรียกใช้งาน ก็สามารถทำได้ โดยอาศัย scope operator คือ

net_connect::make_connection()

แต่ถ้าไม่ต้องการอ้างถึง ยาวขนาดนั้นสามารถทำได้ โดยกำหนด Scope ในการอ้างถึง (Naming) ใหม่ เช่น

using namespace std;

หรือ

using std::cout;

ซึ่งทำให้เราสามารถใช้งาน cout << “hello”; ได้


Templates

ด้วย Algorithm เดียวกัน เราสามารถทำงานกับตัวแปรต่างชนิดกันได้ เพียงแค่เปลี่ยนชนิดของตัวแปร โดยไม่จำเป็นต้องเปลี่ยน Code ดังเช่น

// function template
#include <iostream>
using namespace std;

template <class T>
T GetMax (T a, T b) {
  T result;
  result = (a>b)? a : b;
  return (result);
}

int main () {
  int i=5, j=6, k;
  long l=10, m=5, n;
  k=GetMax<int>(i,j);
  n=GetMax<long>(l,m);
  cout << k << endl;
  cout << n << endl;
  return 0;
}

ลองดูต่อที่ Templates

และจากกลุ่มสนทนาใน Pantip กล่าวไว้ว่า

“…
Container

คือแม่แบบและ เป็นคำเรียกรวมๆของ STL Class ทั้งหมดที่มีให้ใช้ใน C++ ซึ่งจัดการลำดับในการเก็บข้อมูล

ข้อมูลที่เก็บ จะเป็นข้อมูลชนิดใดๆ ก็ได้ที่มี default constructor, destructor และ assignment operator ซึ่งมีความแตกต่างกันในการใช้งาน

Container ในแต่ละชนิด มี Method ที่สำคัญ และมีเหมือนๆกันในทุกๆ Containers คือ begin() และ end() โดย begin() จะส่งค่าตำแหน่งของข้อมูลตัวแรกใน Container และ end() จะส่งค่าตำแหน่งสุดท้ายของข้อมูลที่สามารถใช้งาน

Iterator
เปรียบเสมือน Pointer ที่ชี้ยังข้อมูลที่อยู่ใน Container ซึ่งใน STL การจัดการข้อมูลใช้สัญลักษณ์เดียวกับที่ใช้ใน Pointer เช่น ใน operator ++ เป็นการเลื่อน Iterator ไปยังข้อมูลตัวต่อไป

การเข้าถึงข้อมูลก็ใช้สัญลักษณ์ * เช่นเดียวกับ Pointer ซึ่งเรียกการเข้าถึงข้อมูลนี้ว่า dereference

…”


Advertisements
มาตรฐาน

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s