Kļūda: Int nevar atsaukt C++

Kluda Int Nevar Atsaukt C



Programmēšanas valodām, strādājot ar tām, ir nepieciešamas bibliotēkas, funkcijas, sintakse un citas lietas. Tādējādi pastāv iespēja, ka mūsu kodos būs kļūdas. Programmēšanai C++ ir daudz dažādu kļūdu veidu. Šeit mēs apspriedīsim kļūdu “int nevar atsaukt C++”. Šī kļūda rodas, mēģinot izmantot atsauces operatoru “*” ar vesela skaitļa tipa datiem “int”, jo “int” ir primitīvs datu tips. Mēs nevaram atsaukt atsauci uz “int” C++ programmēšanā. Šeit kļūda “int nevar atsaukt C++”, un tās risinājums tiks rūpīgi izpētīts. Šajā rokasgrāmatā ir sniegti daži kodi, kuros mēs redzēsim, kā šī kļūda rodas un kā rīkoties ar šāda veida kļūdām programmā C++.

1. piemērs: Int







Šajā kodā mēs mēģināsim noņemt atsauci uz “int” valodā C++. Tagad mēs vienkārši iekļaujam “iostream” galvenes failu, lai izmantotu noteiktās funkcijas. Zem tā mēs izmantojam “namespace std” un šeit izsaucam “main()” metodi. Pēc tam mēs deklarējam mainīgo “my_num” ar datu tipu “int” un šim mainīgajam piešķiram “99”.



Tagad mēs deklarējam “int” datu tipa “my_value” un inicializējam to ar “*my_num”, kas nozīmē, ka mēs cenšamies atsaukt uz mainīgo “my_num”, kas ir datu tips “int”. Kompilēšanas laikā šajā rindā tiek ģenerēta kļūda, jo mēs nevaram atsaukt atsauci uz “int”. Mēs vēlamies parādīt vērtību, ko iegūstam pēc int atsauces atcelšanas, tāpēc ievietojam “cout”, kurā pievienojām mainīgo “my_value”.



1. kods:





#include
izmantojot namespace std;
int galvenais ( ) {
int mans_numurs = 99 ;
int mana_vērtība = * mans_numurs;
cout << 'Vērtība, ko iegūstam, atceļot atsauci uz int, ir: << mana_vērtība << endl;
atgriezties 0 ;
}

Izvade:



Šeit mēs varam pamanīt, ka netiek parādīta neviena vērtība un rodas kļūda, kas norāda, ka ir nederīgs unāra “*” arguments. Tas nozīmē, ka mēs nevaram atsaukt atsauci uz “int” valodā C++.

1. risinājums: bez atsauces noņemšanas

Šeit mēs iegūsim veselo skaitļu vērtību tieši bez atsauces atcelšanas. Mēs importējam “iostream” galvenes failu, jo ir pieejamas dažas funkciju definīcijas. Pēc tam mēs ierakstām “namespace std” kopā ar atslēgvārdu “using” un pēc tam šeit izsaucam metodi “main()”. Tagad mēs inicializējam datu tipa “int” mainīgo “my_num” ar vērtību “99”.

Pēc tam mēs inicializējam citu mainīgo ar nosaukumu “my_value” un piešķiram tam mainīgo “my_num”, kas satur veselu skaitli. Pēc tam mēs iegūstam šo veselā skaitļa vērtību tieši bez atsauces atcelšanas, ievietojot “my_value” laukā “cout”. Tas iegūst un parāda vesela skaitļa vērtību.

1. kods:

#include
izmantojot namespace std;
int galvenais ( ) {
int mans_numurs = 99 ;
int mana_vērtība = mans_numurs;
cout << 'Vērtība, ko iegūstam, neatsaucot int, ir: << mana_vērtība << endl;
atgriezties 0 ;
}

Izvade:

Šeit tiek atveidota vesela skaitļa vērtība, kuru mēs iegūstam, neatsaucot atsauci mūsu C++ kodā. Mēs tieši piekļūstam šai veselā skaitļa vērtībai un parādām to.

2. risinājums. Atsauces uz rādītāju

“iostream” galvenes failā ir noteiktas funkciju definīcijas; mēs tos importējām. Pēc tam mēs palaižam funkciju “main()” šeit pēc tam, kad ierakstāt “namespace std” un atslēgvārdu “using”. Datu tipa “int” mainīgais “my_num” tagad ir inicializēts ar vērtību “99”.

Pēc tam mēs inicializējam rādītāju “my_ptr” un šim rādītājam piešķiram mainīgā “my_num” adresi. Zem šī rādītāja tiek noņemta atsauce un iegūtā vērtība mainīgajam “my_value” tiek piešķirta, inicializējot “my_value” ar “*my_ptr”. Tagad mēs ievietojam “cout”, kurā nododam mainīgo “my_value”, lai parādītu veselu skaitļa vērtību, ko iegūstam, atceļot rādītāju.

2. kods:

#include
izmantojot namespace std;
int galvenais ( ) {
int mans_numurs = 99 ;
starpt * mans_ptr = & mans_numurs;
int mana_vērtība = * mans_ptr;
cout << 'Int vērtība, ko iegūstam, atceļot rādītāja atsauci, ir: << mana_vērtība << endl;
atgriezties 0 ;
}

Izvade:

Vesela skaitļa vērtība, ko iegūstam pēc tam, kad kodā ir noņemta atsauce uz rādītāju, tagad tiek parādīta šeit. Tātad, tas ir pareizais veids, kā izmantot atsauces atcelšanu programmā C++.

2. piemērs: Int

Mēģināsim šajā kodā noņemt atsauci uz “int” C++ valodā. Lai izmantotu funkcijas, kas definētas “iostream”, mums vienkārši jāiekļauj galvenes fails “iostream”. Šeit mēs izmantojam “namespace std” un izsaucam funkciju “main()”. Pēc tam mēs izveidojam mainīgo “a” un piešķiram tam datu tipu “int” kopā ar vērtību “75”.

Zem tā mēs izveidojam rādītāju ar nosaukumu “newPointer” un ar “&” palīdzību šim rādītājam piešķiram mainīgā “a” adresi. Pēc tam mēs inicializējam tālāk esošo mainīgo “num” ar “*a”, kas norāda, ka mēs cenšamies noņemt atsauci uz “a” mainīgo, kas ir datu tips “int”. Tā kā mēs nevaram atsaukt atsauci uz “int”, kompilācijas laikā šajā rindā tiek parādīta kļūda. Pēc tam mēs izmantojam arī “cout”, kurā pievienojam mainīgo “num”.

2. kods:

#include
izmantojot namespace std;
int galvenais ( ) {
int a = 75 ;
starpt * newPointer = & a;
int skaitlis = * a;
cout << 'Int atsauces atcelšanas vērtība ir: ' << uz viena << endl;
atgriezties 0 ;
}

Izvade:

Šeit mēs redzam, ka nav parādīta neviena vērtība, un tiek parādīts kļūdas ziņojums, kurā norādīts 'nederīgs unāra tipa parametrs'*. Tas norāda, ka “int” nevar atsaukt C++.

1. risinājums: bez atsauces noņemšanas

Mums nav jāatsauc atsauce, lai nekavējoties iegūtu veselu skaitļa vērtību. Mēs to importējam, jo ​​“iostream” galvenes failā ir noteiktas funkciju definīcijas. Pēc tam, kad ir ievadīti atslēgvārdi “using” un “namespace std”, tiek izsaukta funkcija “main()”. Datu tipa “int” mainīgais “a” tagad ir inicializēts ar vērtību “75”. Pēc tam mēs ievietojam “a” laukā “cout”, lai iegūtu šo veselo skaitļa vērtību nekavējoties, neatsaucoties. Tas izgūst vesela skaitļa vērtību un parāda to šeit.

1. kods:

#include
izmantojot namespace std;
int galvenais ( ) {
int a = 75 ;
cout << 'Vērtība, ko iegūstam bez atsauces atcelšanas, ir: << a << endl;
atgriezties 0 ;
}

Izvade:

Šeit ir parādīta vesela skaitļa vērtība, kas iegūta no mūsu C++ koda bez atsauces atcelšanas. Šī veselā skaitļa vērtība ir uzreiz pieejama un tiek parādīta šeit.

2. risinājums:

Mēs importējam “iostream” galvenes failu, kurā ir dažas funkciju definīcijas. Šeit mēs ierakstām “namespace std” un “using” atslēgvārdu pirms funkcijas “main()” izpildes. Vērtība “75” tiek piešķirta mainīgajam “a”.

Tālāk mēs deklarējam rādītāju ar nosaukumu “mypointer” un inicializējam to ar mainīgā “a” adresi. Zem tā mēs atceļam norādi uz rādītāju un no tā iegūto vērtību piešķiram mainīgajam “rezultāts”, inicializējot “rezultātu” ar “*mypointer”. Pēc norādes noņemšanas mēs ievietojam komandu “cout” un nododam mainīgo “rezultāts”, lai parādītu vesela skaitļa vērtību.

2. kods:

#include
izmantojot namespace std;
int galvenais ( ) {
int a = 75 ;
starpt * mans rādītājs = & a;
int rezultāts = * mans rādītājs;
cout << 'Vērtība, ko iegūstam, atceļot rādītāju, ir: << rezultāts << endl;
atgriezties 0 ;
}

Izvade:

Šī ir pareizā metode, lai izmantotu atsauces atcelšanu C++. Tas atveido vesela skaitļa vērtību, ko ieguvām pēc rādītāja atsauces atcelšanas, nevis atsauces uz “int” atcelšanas.

Secinājums

Mēs izpētījām, ka, mēģinot iegūt vērtību, atceļot atsauci uz “int” valodā C++, radīsies kļūda “nederīga tipa parametram unāram “*”, kam ir int”, kas nozīmē, ka “int nevar atsaukt C++”. Mēs arī izskaidrojām šīs kļūdas risinājumu. Mēs izmantojām kodu, kurā radās kļūdas, un kodus, kuros mēs nodrošinājām šīs kļūdas risinājumu šajā rokasgrāmatā.