Learn how to use #static, #reference, #value and #pointer member variables inside a #class in c plus plus and c sharp. How to initialize member variables and how to use these with a #constructor.
C++ Code:
#include <iostream> //for cout
#include <fstream> // for ofstream/ifstream
#include <string> //for << and getline
#include <vector> //for vectors
#include<list> //for lists
class file_element
{
//int line_no;
//std::string line;
//int *line_no;
//std::string *line;
//int &line_no;
//std::string &line;
static int line_no;
static std::string line;
public:
//file_element(std::string &l, int &n) :line(l),line_no(n)//for reference members
file_element(std::string l, int n)
{
line = l;
line_no = n;
//line = new std::string(l);
//line_no = new int(n);
}
std::string get_line()
{
return line;
//return *line;
}
int get_line_no()
{
return line_no;
//return *line_no;
}
};
std::string file_element::line = "";//for static members
int file_element::line_no;
int main(int argc, char *argv[])
{
std::ifstream input_file;
input_file.open("test.txt");
std::ofstream output_file("test.txt.out");
std::string line;
std::list<file_element> elements;
for (int line_no = 1; std::getline(input_file, line); ++line_no)
{
file_element element(line,line_no);
elements.push_back(element);
}
std::list<file_element>::iterator iter = elements.begin();
for (; iter != elements.end(); ++iter)
{
std::cout << (*iter).get_line_no() << ": " << (*iter).get_line() << std::endl;
output_file << (*iter).get_line_no() << ": " << (*iter).get_line() << std::endl;
}
if (input_file)
{
input_file.close();
output_file.close();
}
std::cin.get();
return 0;
}
C# Code:
using System;//for Console
using System.Collections.Generic;//for lists
using System.IO;//to use StreamReader
namespace lec2csharp
{
class File_element
{
//string line;
//int line_no;
static string line;
static int line_no;
internal File_element(string l, int n)
{
line = l;
line_no = n;
}
public string Get_line()
{
return line;
}
public int Get_line_no()
{
return line_no;
}
};
class Program
{
static void Main(string[] args)
{
StreamReader input_file = null;
input_file = new StreamReader("test.txt");
StreamWriter output_file = new StreamWriter("test.txt.out");
string line = "";
List<File_element> elements = new List<File_element>();
for (int line_no = 1; (line = input_file.ReadLine()) != null; ++line_no)
{
File_element element = new File_element(line,line_no);
elements.Add(element);
}
foreach (File_element iter in elements)
{
Console.WriteLine("{0}: {1}", iter.Get_line_no(), iter.Get_line());
output_file.WriteLine("{0}: {1}", iter.Get_line_no(), iter.Get_line());
}
if (input_file != null)
{
input_file.Close();
output_file.Close();
}
Console.ReadLine();
}
}
}
#csharp #cplusplus #tutorial
Static Class & Static Members In C# With Examples
Static Classes and Static Class Members in C# Programming
C# Training Static Members