**सी++** (C++ ; उच्चारण: *सी प्लस-प्लस*) एक स्थैतिक टाइप, स्वतंत्र-प्रपत्र, बहु-प्रतिमान संकलित, सामान्य प्रयोजन प्रोग्रामिंग भाषा है। यह एक *मध्यस्तरीय* भाषा के रूप में जानी जाती है, क्योंकि यह दोनों उच्च स्तर और निम्न स्तर की भाषा सुविधाओं का एक संयोजन है। यह ब्यार्ना स्त्रौस्त्रप द्वारा विकसित सी भाषा की वृद्धि के रूप में बेल लेबोरेटरीज में 1979 में शुरू किया गया था। इस भाषा का मूल नाम *सी विथ क्लासेस* था, जिसे १९८३ में बदल कर सी++ कर दिया गया। यह एक आब्जेक्ट उन्मुखी (ऑब्जेक्ट ओरिएंटेड) भाषा है।

सी++ के डिजाइन का दर्शन
-----------------------

ब्यार्ना स्त्रौस्त्रप ने *"द डिजाईन एंड एवोल्युशन ऑफ़ सी++"* (1994) में सी++ के बारे में कुछ बातें कहीं, वे इस प्रकार हैं :

* सी++ स्थैतिक टंकित (*स्टैटिकली टाइप्ड*), सामान्य-उपयोग वाली (*जनरल परपज*) एवं सी भाषा के समान ही दक्ष एवं पोर्टेबल प्रोग्रामिंग भाषा है।

* सी++ कई तरह के प्रोग्रामिंग शैलियों का समर्थन करने के हिसाब से रची गयी है। इसमें प्रोसीजरल प्रोग्रामिंग, वस्तु-केन्द्रित प्रोग्रामिंग (*ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग*), मॉड्युलर प्रोग्रामिंग, अथवा जेनेरिक प्रोग्रामिंग शैली में से किसी भी शैली को अपनाकर प्रोग्राम किया जा सकता है।

* इस बात का ध्यान रखा गया है कि सी++ का सी के साथ अधिक से अधिक सामन्जस्य बना रहे। इस प्रकार सी में लिखे प्रोग्राम अधिकाशतः बिना किसी परिवर्तन के सी++ में चल सकते हैं। इससे 'सी' के जानकारों को सी++ में प्रवेश करने में कोई असुविधा नहीं होती है।

* सी++ उन फीचर के कारण कोई अतिरिक्त भार नहीं डालती जो प्रोग्राम में अप्रयुक्त हैं।

उपरोक्त बातों के अतिरिक्त सी++ की प्रमुख विशेषताएँ निम्नलिखित हैं-

* **ऑब्जेक्ट-ओरिएन्टेड प्रोग्रामिंग**

* इनहेरिटेंस
* क्लासेज
* पोलिमोर्फिस्म
* डाटा एन्काप्सुलेशन

* पोर्टेबिलिटी
* संक्षिप्तता (Brevity) - सी++ में लिखा कोड अन्य भाषाओं की तुलना में बहुत छोटा होता है।
* मॉड्युलर प्रोग्रामिंग- सी++ के किसी अप्लिकेशन के अन्दर अनेकों छोटे-छोटे प्रोग्राम हो सकते हैं जिनके सोर्स कोड को अलग से कम्पाइल करके  
 परस्पर लिंक कर दिया जाता है। इससे समय की बचत होती है। इसके अलावा, मूलतः किसी दूसरी भाषा में लिखे प्रोग्राम को   
 कम्पाइल करके सी++ में सम्मिलित किया जा सकता है।
* सी-भाषा के साथ कम्पेटिबिलिटी
* तेज गति
* सूचना पासिंग (Message Passing)
* गतिक बाइण्डिंग (Dynamic Binding)

सी++ प्रोग्राम का एक उदाहरण
---------------------------

```
#include <iostream>

using namespace std;

int main()
{
 cout << "Jay Shri Ram -- Hallo India"<< endl;
 cin.get();
}

```

सरल इनपुट-आउटपुट
----------------

### आउटपुट

```
 char \*name="priyanshu kk";
 char \*country="India";

 cout << "Hello, I am "<< vikas verma<< ". I am from "<< india << endl;

```

### इनपुट

```
# include <iostream>
using namespace std;

int main ()
{
 int i;
 cout << "Please enter an integer value: ";
 cin >> i;
 cout << "The value you entered is "<< i;
 cout << "" << i\*i << ".\n";
 return 0;
}

```

```
Please enter an integer value: 5
The value you entered is 5 and its square is 25.

```

नियन्त्रण
---------

### if else if

```
string selection;
selection = "ta";

if (selection=="hi")
 cout<< "You have selected the Tamil Wikipedia";
else if (selection=="ta")
 cout<< "You have selected the Tamil Wikibooks";
else
 cout<< "You have selected the Tamil Wikisource";

```

```
You have selected the Tamil Wikipedia

```

  

### switch

```
int selection;
selection = 2;
switch (selection){
 case 1:
 cout<< "You have selected Tamil Wikipedia";
 break;
 case 2:
 cout<< "You have selected Tamil Wikibooks";
 break;
 default:
 cout<< "You have selected Tamil Wikisource";
 break;
 }

```

```
You have selected Tamil Wikibooks

```

चक्र (लूप)
----------

### while

```
int i=1;
while(i<=5)
 {
 cout << "The number is "<< i <<"\n" ;
 i++;
 }

```

```
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

```

  

### do while

```
int i=1;
do {
 cout << "The number is "<< i << "\n";
 i++;
 } while (i <= 5);

```

```
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

```

  

### for

```
int i=1;

for (i=1; i<=5; i++)
{
 cout << "Iteration:"<<i<<" Hello World!\n";
}

```

```
Iteration:1 Hello World!
Iteration:2 Hello World!
Iteration:3 Hello World!
Iteration:4 Hello World!
Iteration:5 Hello World!

```

फलन
---

### pass by value

```
int main (){
 int add (int a, int b);
 int ans;
 ans = add(4, 2);
 cout << "Ths sum is "<< ans << "\n";
 return 0;
 }

int add (int a, int b){
 int ans;
 ans = a + b;
 return ans;
 }

```

```
The Sum is 6

```

  

### pass by references

```
int main (){
 void passbyref (int& a, int& b);
 int a=1, b=3;
 passbyref (a, b);
 cout << "a=" << a << ", b=" << b << "\n";
 return 0;
 }

void passbyref (int& a, int& b){
 a = a + 10;
 b= b + 10;
 }

```

```
a=11, b=13;

```

ऑबजेक्ट ओरिएन्टेड प्रोग्रामिंग
------------------------------

```
class Calculator {
 int x, y;
 public:
 void set\_values (int,int);
 int add () {
 int ans;
 ans = x + y;
 return ans;
 }
 };

void Calculator::set\_values (int a, int b) {
 x = a;
 y = b;
 }

int main () {
 Calculator c1;
 c1.set\_values (5, 3);
 cout << "The sum is: "<< c1.add() << endl;
 return 0;
 }

```

```
The sum is: 8

```

कम्पाइलर
--------

* जीसीसी
	+ Cygwin
	+ DJGPP (GCC का DOS-port)
	+ MinGW (GCC का Windows-port)
* Microsoft Visual C++ (Windows)
* Intel C++-Compiler (Linux, Windows)
* Digital Mars (DOS, Windows)
* Borland C++-Compiler (Windows)

### आई डी ई (IDE's)

* माइक्रोसॉफ्ट विजुअल स्टुडियो (Windows)
* Dev-C++ -- मुक्तस्रोत
* QtCreator,
* KDevelop,
* Code::Blocks ,
* Eclipse
* NetBeans (Windows, Linux, Mac OS X en Solaris)
* CodeLite (Windows, Linux en Mac OS X)
* CLion (Windows, Linux en Mac OS X)

इन्हें भी देखें
---------------

* सी प्रोग्रामिंग भाषा
* प्रोग्रामिंग भाषाओं की तुलना
* जावा प्रोग्रामिंग भाषा
* सी++ कम्पाइलरों की सूची

बाहरी कड़ियाँ
-------------

* A paper by Stroustrup showing the timeline of C++ evolution (1979-1991)
* Standards Committee Page: JTC1/SC22/WG21 - C++
* C++ FAQ Lite by Marshall Cline
* difference between in c & c++ in hindi

सन्दर्भ
-------