Class in c++ and c# with value reference pointer static members 36

Опубликовано: 01 Октябрь 2024
на канале: Arif Mahmood
21
0

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