Метод set нужен для того что бы присвоить закрытым (private) переменным в классе какое-либо значение. Т.к поле private доступно только для методов этого класса. А конструктор в зависимости от условия присваивает им какое-либо дефолтное значение . Разница в том что конструктор запускается автоматически при создании объекта. Приведу пример (с++)
class Fraction { private: int N; int deN; public: Fraction(); // прототип конструктора void setFraction(int, int); // прототип сет-метода }; void Fraction::setFraction(int num, int denum) // сам сет-метод { N = num; deN = denum; } Fraction::Fraction() // конструктор { int N = NULL; int deN= NULL; }
доступно только для методов этого класса.
А конструктор в зависимости от условия присваивает им какое-либо дефолтное значение . Разница в том что конструктор запускается автоматически при создании объекта.
Приведу пример (с++)
class Fraction
{
private:
int N; int deN;
public:
Fraction(); // прототип конструктора
void setFraction(int, int); // прототип сет-метода
};
void Fraction::setFraction(int num, int denum) // сам сет-метод
{
N = num; deN = denum;
}
Fraction::Fraction() // конструктор
{
int N = NULL;
int deN= NULL;
}
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL,"russian");
cout << "Введите количество нечётных чисел (до 2000 включительно) ";
int count;
int sum = 0;
cin >> count;
if(count >= 1 && count <= 2000)
{
for(int i = 1; i<=count; i++)
{
if(i%2!=0)
{
if(i!=count) // проверка на то, ставить ли ещё 1 плюс или будет равно
{
cout << i << " + ";
sum=sum+i;
}
else
{
cout << i;
sum=sum+i;
}
}
else
{
if(i!=count)
{
cout << i+1 << " + ";
i++;
sum=sum+i;
}
else
{
cout << i+1;
i++;
sum=sum+i;
}
}
}
}
cout << " = " <<sum;
system("pause");
return 0;
}
Аналогичная программа:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL,"russian");
cout << "Введите последнее нечётное число";
int num;
int a;
cin >> num;
num=num+1;
num=num/2;
num=num*num;
cout << "Итого: " << num;
system("pause");
return 0;
}