Итак, в настоящее время я прохожу курс ускоренного C ++ по удеме Джереми Сика, и я был на том уроке, в котором он упоминает конкатенацию строк, и в одной части он дал задание напечатать что-то (БЕЗ ИСПОЛЬЗОВАНИЯ NESTED LOOPS), например:
OUTPUT:
*
**
***
****
(- Так что я знаю о циклах из более ранних, и я не совсем новичок в программировании на C ++, но я просто дополняю знания из предыдущих, и я знаю, что эта проблема может быть решенным с помощью вложенных циклов. Но ЭТО НЕ МОЙ ВОПРОС, ПРОДОЛЖАЙТЕ ЧТЕНИЕ, ПОТОМУ ЧТО Я ДОЛЖЕН ВСТРОИТЬ ВВЕДЕНИЕ В МОЙ ВОПРОС)
Прежде чем он создал программу, исходный код которой похож на этот (КОТОРЫЙ Я ЗАВЕРШАЮ ПОНЯТЬ)
int main()
{
cout << "Please enter your name:";
string name;
cin>>name;
string greeting="Hello, " + name + "!";
string spaces(greeting.size(), ' ');
string stars(greeting.size(), '*');
cout << "**" stars << "**" << endl;
<< "* "<< spaces << " *"<< endl;
<< "* "<< greeting << " *"<< endl;
<< "* "<< spaces << " *" <<endl;
<< "**" stars << "**" << endl;
return 0;
}
Теперь о моем вопросе: я пытался выполнить задачу, которую он дал, и у меня получилось что-то вроде этого:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string star="*";
int br=1;
cout<<star<<endl;
while(br<4)
{
br+=1;
string (newstar.size(br, '*') );
cout<<newstar<<endl;
}
return 0;
}
Теперь эта программа вызвала ошибку из-за string (newstar.size(br, '*') );
что я не понимаю, почему это неправильно и почему string newstar(br, '*');
правильно без .size и без ()?